redis操作命令总结
先来介绍一下这篇文章的特点:最主要的是每条命令后面添加了详细的解释,以及英文单词的意思,便于大家理解,我也没想到有生之年我会这么多单词,哈哈哈哈.还有就是有的命令后面gen了实例,方便理解,鬼知道我写这篇文章花了多久,希望对大家有所帮助,这就是对我最大的鼓励.(虽然检查了很多遍,但是内容实在是多,所以有错误的请大家指出.我会进行更改)
1.启动redis服务端和客户端
服务端启动redis-server
(server服务器)
客户端启动:redis-cli
(cli代表的就是client客户端)需要新建一个终端窗口进行操作
不管你在哪个目录下,随时输入这条命令,都是可以进入客户端的
具体的实例可以点击链接进入查看具体使用实例:flask框架(四)
2.redis操作之string类型(最常使用,请掌握)
2.1设置(增加)数据
1/单个键值对set key value
(set设置,key键,value值)
2/给键值对设置有效期setex key second value
(second秒,直接填数值即可,默认的单位是秒)
3/设置多个 键值对:mset key1 value1 key2 value2
(m可以是many多的意思)
4/追加值:append key value
(append增加,这个单词大家肯定不陌生)
2.2获取数据
1/获取单个值get key
(get得到)
2/获取多个值:mget key1 key2
2.3 通过键查看值
1/查看所有的键keys *
2/查看以a开头的键:keys 'a*'
3/查看键是否存在:exists key1
(exist存在)
4/查看键的类型:type key1
(type类型)
2.4 删除键值对
1/删除键:del key1 key2
(del是delete删除的意思)
2/设置键有效期,删除键:expire key seconds
(seconds是秒second的复数形式,说明单位是秒,我们可以设置很长时间)
3/查看键的有效期:ttl key
(对不起,这个我实在是想不出单词和他对应了>.<...)
3.redis操作之hash类型
3.1增加数据
1/在散列键key中关联给定的域值对(filed-value pair):hset key field value
说明:如果域field之前没有关联值,那么命令返回1,如果已经关联过了,那么新值覆盖旧值,返回0
2/给一个散列键里面设置多个域值对;hmset key filed1 value1 field2 value2....
实例:hmset name wangtao ha xiaoyan xi
代表的是给散列name里面存了wangtao-ha和xiaoyan-xi这两个域值对
3.2获取数据
1/ 返回散列键 key 中,域 field 所关联的值:hget key field
说明:如果域field没有关联值,那么返回nil
2/获取多个域所关联的值:hmget key filed1 field2....
实例:hmget name wangtao xiaoyan
获取散列键name里面域wangtao和xiaoyan所关联的值
3/获取散列键中所有的域:hkeys key
实例:hkeys name
获取散列键name里面所有的域
3.3 删除数据
1/删除散列键 key 中的一个或多个指定域,以及那些域的值:hdel key filed1 filed2...
说明:不存在的域将被忽略。命令返回被成功删除的域值对数量。
3.4 记忆小窍门
1/之前字符串类型中的操作命令掌握之后,我们再来看hash类型的命令,会发现好多命令都是相同的,只是在前面加了一个专属hash类型的标识h
,大家可以看hget和hset等等
2/其实hash类型就是相当于给key里面存一个一个的field-value键值对,比字符串类型的多了一层而已,大家学完再回顾一遍就会发现不难了
4.redis操作之list类型
4.1插入数据
1/左侧插入数据:lpush key value1 value2..
(l代表的是left左侧可以形象的理解为从左向右推)
ps:(也许这里你会发现个小问题,就是自己设置完值后,在取值的时候,发现值的顺序变成了倒序,不要怀疑你的眼睛,其实它没问题,当然也不是你的问题,给大家简单的解释一下这个原理:就是我们从左向右推进去,那么随着第二个值推进去,第一个值是不是就被推到里面了,我们一般的排序或者下标索引是不是从左开始标号0123,那么是不是第二个就变成了第一个呢?)
2/右侧插入数据:rpush key value1 value2..
(r代表的是right右侧,可以结合前面理解为从右向左侧推)
3/指定key,旧元素位置前插入元素
linsert key before oldvalue newvalue
(insert是插入的意思,l可以理解为时list列表的操作方法,oldvalue指的是旧元素,newvalue指的就是要插入的新元素)
4/指定key,旧元素位置后插入元素
linsert key after oldvalue newvalue
(这里的灵魂单词便是after后面的意思,和前面的before一样,只需要记俩单词即可)
4.2获取数据
1/获取从编号start位置到编号stop位置的元素
lrange key start stop
(l可以理解为list列表,range就是范围的意思,start是开始,stop是结束,这样应该就好记忆一些了)
tip:(最后一个元素的下标索引可以使用-1)
实例:lrange list 0 -1
查看列表的所有值,从第0号元素开始到最后一个元素
2/设置指定索引位置的元素值:
lset key index value
(l依旧是list,index指的是索引下标)
4.3删除数据
1/将key域列表中,前count次,值为value的元素删除:
lrem key count value
(l还是list,rem是remove移除的意思,count就是次数)
tip:(这里有一个小点:当count>0的时候从头开始数,当count<0的时候,从屁股开始数"请原谅我的粗鲁,话糙理不糙",当count=0的时候查找的就是所有的元素)
5. redis的操作之set
5.1添加元素
1/向key域(集合)中添加多个数据
sadd key member1 member2...
(s代表的就是set集合,add就是增加的意思,member就是成员的意思,意思就是给key里面添加成员(元素))
特点:有序.不重复
5.2获取元素
获取key域集合的所有元素:
smembers key
(s就是set集合,members是member成员(元素)的复数形式,就是查所有的元素了)
5.3删除元素
删除指定的key元素的值:
srem key value
(s就是set集合,rem就是remover删除的意思)
6. redis的操作之zset
6.1增加数据
向key域结合中添加多个score1,member1数据
zadd key score1 member1 score2 member2...
(z就是zset类型,add是增加的意思,score是分数和记录的意思,member就是成员的意思,意思就是记录一个成员(元素),记录一个成员(元素)吧)
6.2获取数据
1/返回指定范围内的member元素:
zrange key start stop
(z就是zset类型,range就是范围的意思,start就是开始,stop就是停止)
start
:为开始索引,包含这个索引的元素
stop
:为屁股索引,包含,其中-1代表的是最后一个元素
2/获取min和max权值之间(包含)的成员值:
zrangebyscore key min max
(z就是zset类型,range就是范围,by就是通过,score分数(在增加数据的时候,用到了这个键名),合起来翻译就是通过score这个键从权重值min(最小)和max(最大值)这个范围内获取成员值)
权值值的就是权重值
3/获取key域(集合)中member的score的权重值:
zscore key member
6.3删除元素
1/删除域(集合)中指定的元素值:
zrem key member1 member2....
2/删除集合中权重在指定范围内(min,max)的元素
zremrangebyscore key min max
(这句话的意思和之前解释的没什么差别,只有rem是remover删除的前三个字母,就是通过score查找那个范围内的元素进行删除)
查看更多命令(估计你也不想查了,但是还是象征性的放一个链接吧,万一哪天脑子一热或者工作需要想查查呢):http://www.redis.cn