redis基础一(基本操作)
来源:互联网 发布:js去掉html标签样式 编辑:程序博客网 时间:2024/05/17 06:40
一、redis之我见
redis之所以现在用的这么多,是因为redis全部都存在内存当中,速度比mysql快很多。然后和memcache相比,redis支持更多类型,能更好的保存数据,而memcache只能用键值对的方式进行保存。
二、redis的打开方式
这里介绍三种redis的打开方式
2.1 在linux环境下
用redis-cli命令来打开,在linux环境下输入,
redis-cli -p 6379 -h 127.0.0.1 //-p 表示端口,默认6379端口, -h 表示ip,本例表示连接本地redis
有些redis可能还存在设置密码的情况。
你可以在进去上面的页面后,输入命令 auth 对应的密码 后就可以正常使用,也可以在进入redis的时候在上面的语句中改写下,成为下面的命令,这样登录也可以正常运行
redis-cli -p 6379 -h 127.0.0.1 -a 对应的密码
2.2 在php中
可以去github上获取redis的php扩展(https://github.com/phpredis/phpredis),然后调用里面的方法就能正常使用了。
2.3 在yii2中
引入yii2-redis的扩展,然后在common模块中的main.php的配置文件中,在components的数组里面加入redis的配置信息:
'redis' => [ 'class' => 'extensions\redis\Connection', 'hostname' => 'localhost', 'port' => 6379, ],
然后在对应的代码中,使用如下代码就能初始化redis对象了,然后只要通过这个对象去调用对应的redis命令就能进行redis操作了。
$redis = Yii::$app->redis->getRedis();
三、redis基本命令
这里我就介绍一些你在项目开发中用的比较多的的redis命令。
3.1 keys命令
可以redis中存在的key,然后根据可以自己给定匹配规则来查找对应的key,下面是keys命令支持的匹配规则,这个基本涵盖了大部分的例子了。
KEYS * 匹配数据库中所有 key 。KEYS h?llo 匹配 hello , hallo 和 hxllo 等。KEYS h*llo 匹配 hllo 和 heeeeello 等。KEYS h[ae]llo 匹配 hello 和 hallo ,但不匹配 hillo 。KEYS hello 只匹配 hello,可以用来判断对应的key是否存在。KEYS t[w]* 可以匹配two等key。KEYS t?? 可以匹配t开头的所有内容特殊符号用 \ 隔开
3.2 EXPIRE 为给定 key 设置生存时间。
使用规则如下,如果想查询剩余的时间的话,可以用TTL命令:
redis> EXPIRE cache_page 30 # 设置过期时间为 30 秒(integer) 1redis> TTL cache_page # 查看剩余生存时间(integer) 23
这个命令需要注意的一点是,他只能更新一个key的有效时间,但是如果是你是hash类型或者list类型的数据,不能对里面的每一条都设置有效期,设置的只是这单一的key的有效期。
这样可能带来的问题就是,如果你想每条数据都有有效期,就无法实现了。而要实现这个功能的话,我的解决方法是,自己写个定时脚本,每分钟执行一次,去获取list类型里的数据,然后删除过期的数据。
3.3 DEL 删除key的操作,可以删除一个或者多个。
# 删除单个 keyredis> SET name huangzOKredis> DEL name(integer) 1# 删除一个不存在的 keyredis> EXISTS phone(integer) 0redis> DEL phone # 失败,没有 key 被删除(integer) 0# 同时删除多个 keyredis> SET name "redis"OKredis> SET type "key-value store"OKredis> SET website "redis.com"OKredis> DEL name type website(integer) 3
对于删除命令,必须要提的一点是,对批量删除的实现,因为del要删除多个也只能自己复制多个可以才能实现删除。我这里提供的一种解决方案是,在linux环境下,用命令实现同类型的key的删除,下面的例子就是删除以notice开头的所有的key,这个方法是压箱底的东西了哈
redis-cli -p 6379 keys "notice*" | xargs redis-cli -p 6379 del
四、redis的导出数据
在linux环境下,有时候你想查看redis的数据,发现太多内容不好查看,可以导出到本地然后再查看
redis-cli keys '*' > 文章路径/redis_key.txt
五、redis的各种类型
redis有很多种类型,string,hash,list,set,sortedset等.用的比较多的是前面四种。
5.1 string类型
主要用于简单的保存信息,常用的命令:get,set,incr
redis> SET test20OKredis> GET test"20"redis> INCR test(integer) 21
5.2 hash类型
这个类型感觉主要用于保存类似二维数组的形式,如保存所有用户的token,key为token,然后里面的域 field为对应的userid,然后里面保存着对应的用户的token。
常用的命令:hset,hget,hgetall
redis> hset token userid_1 token1 //第一个参数为key第二个为域,第三个为域里对应的数据OKredis> hset token userid_2 token2 //第一个参数为key第二个为域,第三个为域里对应的数据OKredis> hget token userid_2 //hget是获取单个域的数据token2 redis> hgetall token //hgetall是获取整个key的数据userid_1token1userid_2token2
5.3 list类型
list的话就可以理解为队列的形式,我用到的是消息队列等,或者将数据存入这个队列,然后用定时脚本去处理这个数据可以。
常用命令:llen,lpush,lpop,rpop
5.4 set类型
set类型的话主要表示集合的形式。
常用命令:sadd, smembers,simember,
redis> SADD test 1(integer) 1redis> smembers test(integer) 1redis> simember test 1(integer) 1
- redis基础一(基本操作)
- Redis 基本操作一
- redis基本操作命令(一)
- java 操作redis 数据库一:基本操作
- Redis的基本数据操作命令(一)
- redis数据库基础之基本操作
- Redis缓存系统(一)Java-Jedis操作Redis,基本操作以及 实现对象保存
- Linux基础命令的操作(一)之基本操作
- Redis命令一:基本操作篇
- Redis命令(一)基本keys操作命令
- redis基础(一)
- 在linux下使用redis的基础操作(一)
- 走近Redis(一)——Redis安装及基本key操作
- C#操作Redis存储基础(续一)
- Redis基本命令(一)
- redis复习(一):基本知识点----安装、基本数据类型和相关操作
- redis的基本数据类型及基本操作(一)
- Unity各类基础数据库的基本操作(一)
- Nginx系统学习篇(4)--负载均衡、URL重写、缓存等特性
- Java RMI 框架(远程方法调用)
- Linux清除木马minerd
- protobuf3 for unity
- 安装运行python指南
- redis基础一(基本操作)
- 三种方式模拟实现strlen函数
- ~/.bash_profile等脚本的初始化
- 四层和七层负载均衡的区别
- mysql 设置中文字段
- 嗯,以后要发简书了
- verilog中关于并行处理的心得
- shell脚本中当某行命令输入过长时如何换行?
- android openGL ES 20 投影、相机画等边三角形和正方形