redis常用命令总结_redis命令行查询key

redis常用命令总结_redis命令行查询key

1.String类型

redis常用命令总结_redis命令行查询key

MSET :批量添加多个String类型键值对

MGET:批量获取多个String类型键值对

 127.0.0.1:6379> MSET k1 v1 k2 v2 k3 v3 OK 127.0.0.1:6379> MGET k1 k2 k3 1) "v1" 2) "v2" 3) "v3" 127.0.0.1:6379> 

INCR:让一个整型的key自增1

127.0.0.1:6379> set k4 18 OK 127.0.0.1:6379> get k4 "18" 127.0.0.1:6379> incr k4 (integer) 19 127.0.0.1:6379> get k4 "19" 127.0.0.1:6379> incr k4 (integer) 20 127.0.0.1:6379> get k4 "20" 127.0.0.1:6379> 

INCRBY :指定整型的key自增,并且指定步长,也即增加多少

127.0.0.1:6379> get k4 "20" 127.0.0.1:6379> INCRBY k4 3 (integer) 23 127.0.0.1:6379> get k4 "23"

指定步长为负数时,就自减了

127.0.0.1:6379> INCRBY k4 -3 (integer) 20 

专用自减命令:DECR  

127.0.0.1:6379> DECR k4 (integer) 19 127.0.0.1:6379> DECRBY k4 3 (integer) 16 

INCRBYFLOAT :指定浮点型的key自增,并且指定步长,也即增加多少

127.0.0.1:6379> set key 24.1 OK 127.0.0.1:6379> INCRBYFLOAT key 0.5 "24.6" 127.0.0.1:6379> get key "24.6" 

SETNX :添加一个String类型的键值对,key必须不存在,存在了不执行

127.0.0.1:6379> SETNX k5 hello (integer) 1 127.0.0.1:6379> SETNX k4 hello (integer) 0 

SETEX:是SET和EXPIRE的组合命令。

添加一个String类型的键值对,并且指定有效期

127.0.0.1:6379> SETEX k6 5 hellokey5 OK 127.0.0.1:6379> TTL k6 (integer) 2 127.0.0.1:6379> TTl k6 (integer) -2 127.0.0.1:6379> TTL k6 (integer) -2 

Redis中没有表的概念 , 将key设置为多个层级结构,多个单词之间使用:隔开

一般格式:【项目名称】:【业务名称】:【类型】:【id】

例如:work:user:1   work:product:1

如果value是一个Java对象,可以将对象序列化为json字符串后存储

{ "id": 1, "username": "john_doe", "email": "john@example.com", "age": 30, "address": { "street": "123 Main Street", "city": "New York", "country": "USA" }, "tags": ["java", "programming", "json"] } 

 可通过key获取json格式的value;避免了id相同的冲突

127.0.0.1:6379> set student:info:2 '{"id":2,"name":"李四","age":17,"gender":"女"}' 127.0.0.1:6379> set student:info:3 '{"id":3,"name":"王五","age":20,"gender":"男"}' OK 127.0.0.1:6379> get student:info:1 "{\"id\":1,\"name\":\"\xe5\xbc\xa0\xe4\xb8\x89\",\"age\":18,\"gender\":\"\xe7\x94\xb7\"}" 127.0.0.1:6379> get student:info:2 "{\"id\":2,\"name\":\"\xe6\x9d\x8e\xe5\x9b\x9b\",\"age\":17,\"gender\":\"\xe5\xa5\xb3\"}" 127.0.0.1:6379> get student:info:3 "{\"id\":3,\"name\":\"\xe7\x8e\x8b\xe4\xba\x94\",\"age\":20,\"gender\":\"\xe7\x94\xb7\"}" 

 2.Hash类型

String存储字符串,单独对某个字段修改不方便

Hash结构可以将对象的每个字段单独存储,可针对单个字段CURD

redis常用命令总结_redis命令行查询key

 常见命令:

HSET  key field  value:添加或修改hash类型的key的field的值

HGET key field:获取一个hash类型的key的field的值

127.0.0.1:6379> HSET hset1 f1 v1 (integer) 1 127.0.0.1:6379> HGET hset1 f1 "v1" 

还可对field的值进行修改

127.0.0.1:6379> HSET hset1 f1 v1alter (integer) 0 127.0.0.1:6379> HGET hset1 f1 "v1alter" 

一个key的field可以有多个

127.0.0.1:6379> HSET hset1 f2 v2 (integer) 1 127.0.0.1:6379> HSET hset1 f3 v3 (integer) 1 127.0.0.1:6379> HGET hset1 f1 "v1alter" 127.0.0.1:6379> HGET hset1 f2 "v2" 127.0.0.1:6379> HGET hset1 f3 "v3" 

HMSET:可以存多组field-value

HMGET:可以获取多个field的值

127.0.0.1:6379> HMSET hset2 f1 v1 f2 v1 f3 v3 OK 127.0.0.1:6379> HMGET hset2 f1 f2 f3 1) "v1" 2) "v1" 3) "v3" 

HGETALL:获取一个Hash类型的key中所有的field和value

127.0.0.1:6379> HGETALL hset2 1) "f1" 2) "v1" 3) "f2" 4) "v1" 5) "f3" 6) "v3" 

KEYS:获取一个hash类型的key的所有field

127.0.0.1:6379> HKEYS hset2 1) "f1" 2) "f2" 3) "f3" 

HVALS:获取所有的值

127.0.0.1:6379> HVALS hset2 1) "v1" 2) "v1" 3) "v3" 

HINCRBY:让一个hash类型的key的字段值自增并且指定步长

127.0.0.1:6379> HSET hset3 5 5 (integer) 1 127.0.0.1:6379> HINCRBY hset3 5 2 (integer) 7 127.0.0.1:6379> hvals hset3 1) "7" 

HSETNX:添加一个hash类型的key的field值,前提是field不存在,否则不执行

127.0.0.1:6379> HSETNX hset3 7 5 (integer) 1 127.0.0.1:6379> HSETNX hset3 7 5 (integer) 0 127.0.0.1:6379> hget hset3 7 "5" 

3.List命令

Redis中的list类型与Java中的LinkedList类似,可看作是双向链表结构,既可以支持正向检索,也支持反向检索

特征:有序、素可重复插入、插入删除快、查询速度一般

LPUSH key element…:向列表左侧插入一个或多个素

LPOP key:移除并返回列表左侧的第一个素,没有则返回nil

PHUSH key element…:向列表右侧插入一个或多个素

RPOP key:移除并返回列表右侧的第一个素

LRANGE key star end:返回一段角标范围内的所有素

BLPOP和BRPOP:与LPOP和RPOP相似,只不过在没有素时指定等待时间,不直接返回nil

127.0.0.1:6379> LPUSH list1 hello world (integer) 2 127.0.0.1:6379> LPUSH list1 zhangsan lisi wangwu (integer) 5 wangwu->lisi->zhangsan->world->hello 127.0.0.1:6379> LPOP list1 "wangwu" 127.0.0.1:6379> RPUSH list1 zhaoliu (integer) 5 lisi->zhangsan->world->hello->zhaoliu 127.0.0.1:6379> RPOP list1 "zhaoliu" lisi->zhangsan->world->hello 127.0.0.1:6379> LRANGE list1 1 3 1) "zhangsan" 2) "world" 3) "hello" 127.0.0.1:6379> LPUSH list2 lisi (integer) 1 127.0.0.1:6379> Lpop list2 "lisi" 出队列,指定时间,如果不存在,就会阻塞 127.0.0.1:6379> BLPop list2 3 (nil) (3.08s) 

模拟栈:入口出口在一起;先进后出(LPUSH+LPOP)

模拟队列:入口出口不在一起;先进先出(LPUSH+RPOP)

阻塞队列:满足队列(入口出口不在一起;先进先出)满足阻塞(出队列采用B L/R POP)

4.Set类型 

与hashset相似,可以看作是value为null的hashmap,因为也是一个hash表,具备hashset的特征

无序、素不可重复、查找快、支持交集、并集、差集等功能

SADD key member…:添加一个或多个素

SREM key member:移除set指定的素

 SCARD key:返回set中的素个数

SISMEMBER key member:判断一个素是否在set中

SMEMBERS:获取set中的所有素

SINTER key1 key2:求两个key的交集

SDIFF key1 key2:求差集(a中有的,b没有,这个素就是a和b的差,多个差就是差集)

SUNION key1 key2:求并集,相同的素只出现一次

127.0.0.1:6379> SADD set1 v1 v2 v3 v4 v5 (integer) 5 127.0.0.1:6379> SREM set1 v1 (integer) 1 127.0.0.1:6379> SCARD set1 (integer) 4 127.0.0.1:6379> SISMEMBER set1 v1 (integer) 0 127.0.0.1:6379> SISMEMBER set1 v2 (integer) 1 127.0.0.1:6379> SMEMBERS set1 1) "v3" 2) "v5" 3) "v2" 4) "v4" //结果体现了set是无序的 //求交集 127.0.0.1:6379> SADD set2 v1 v2 v3 v4 (integer) 4 127.0.0.1:6379> SINTER set1 set2 1) "v3" 2) "v2" 3) "v4" //求差集 127.0.0.1:6379> SDIFF set1 set2 1) "v5" //求并集 127.0.0.1:6379> SUNION set1 set2 1) "v4" 2) "v3" 3) "v1" 4) "v5" 5) "v2" 

5.SortedSet类型

是一个可排序的set集合,与Java的treeset类似。SortedSet中每个素带有一个score属性,基于这个属性可以进行素排序

可排序、素不重复、查询速度快,可实现排行榜类似的功能

常用命令:

ZADD key score member:添加一个或多个素到sortedset,如果存在则更新score值

ZREM key member :删除指定的素

SCORE key member:获取指定素的score值

ZRANK key member:获取指定素的排名

ZCARD key: 获取素个数

ZCOUNT key min max:统计score值在给定范围内的所有素个数

ZINCRBY key increment member:让指定素自增,步长为increment

ZRANGE key min max:按照score排序后,获取指定排名范围内的的素

ZRANGEBYSCORE  key min max :按照score排序后,获取指定范围的素

ZDIFF:求差集  ZINTER:求交集、ZUNION :求并集

//插入student 127.0.0.1:6379> ZADD student 90 zs 80 li 87 ww 67 zl (integer) 4 //移除zl 127.0.0.1:6379> ZREM student zl (integer) 1 //查看score值 127.0.0.1:6379> ZSCORE student zs "90" 127.0.0.1:6379> ZSCORE student li "80" 127.0.0.1:6379> ZSCORE student ww "87" //获取指定素排名 127.0.0.1:6379> ZRANk student li (integer) 0 127.0.0.1:6379> ZRANK student ww (integer) 1 127.0.0.1:6379> ZRANK student zs (integer) 2 //查询总共有多少素 127.0.0.1:6379> ZCARD student (integer) 3 //查询指定范围的score有多少素 127.0.0.1:6379> ZCOUNT student 80 98 (integer) 3 //指定素为zs。自增步长为10。从90变为100 127.0.0.1:6379> ZINCRBY student 10 zs "100" //根据score排名后,在指定范围获取素 127.0.0.1:6379> ZRANGE student 0 2 1) "li" 2) "ww" 3) "zs" 127.0.0.1:6379> ZRANGE student 0 1 1) "li" 2) "ww" 127.0.0.1:6379> ZRANGE student 0 0 1) "li" //根据score排名后,指定score范围获取素 127.0.0.1:6379> ZRANGEBYSCORE student 80 110 1) "li" 2) "ww" 3) "zs" 

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/168477.html

(0)
上一篇 2024年 7月 2日 下午3:23
下一篇 2024年 7月 2日 下午3:26

相关推荐

关注微信