redis常用命令

 

 

解释

Zadd

Zadd key-name score member [score member…]——将带有给定分值的成员添加到有序列表里面

Zrem

Zrem key-name member [member…]——从有序集合里面移除给定的成员,并返回被移除成员的数量

Zcard

Zcard key-name——返回有序集合包含的成员数量

Zincrby

Zincrby key-name increment member——将member成员的分值加上increment

Zcount

Zcount key-name min max——返回分值介于min和max之间的成员数量,包括min和max在内

Zrank

Zrank key-name member——返回成员member在有序集合中的排名,成员按照分值从小到大排列

Zrevrank

Zrevrank key-name member——返回成员member在有序集合中的排名 ,成员按照分值从大到小排列

Zscore

Zscore key-name member——返回成员member的分值

Zrange

Zrange key-name start stop [WITHSCORES]——返回有序集合中排名介于start和stop之间的成员,包括start和stop在内,如果给定了可选的WITHSCORES选项,那么命令会将成员的分值一并返回,成员按照分值从小到大排列

Zrevrange

Zrevrange key-name start stop [WITHSCORES]——返回有序集合中排名介于start和stop之间的成员,包括start和stop在内,如果给定了可选的WITHSCORES选项,那么命令会将成员的分值一并返回,成员按照分值从大到小排列

Zrangebyscore

Zrangebyscore key-name min max [WITHSCORES] [LIMIT offset count]——返回有序集合中分值介于min和max之间的所有成员,包括min和max在内,并按照分值从小到大的排序来返回他们

Zrevrangebyscore

Zrevrangebyscore key-name min max [WITHSCORES] [LIMIT offset count]——返回有序集合中分值介于min和max之间的所有成员,包括min和max在内,并按照分值从大到小的排序来返回他们

Zremrangebyrank

Zremrangebyrank key-name start stop——移除有序集合中排名介于start和stop之间的所有成员,包括start和stop在内

Zremrangebyscore

Zremrangebyscore key-name key min max——移除有序集合中分值介于min和max之间的所有成员,包括min和max在内

Zinterstore

Zinterstore dest-key key-count key [key…][WEIGHTS weight [weight…]] [AGGREGATE SUM|MIN|MAX]——对给定的有序集合执行类似于集合的交集运算

Zunionstore

Zunionstore dest-key key-count key [key…][WEIGHTS weight [weight…]] [AGGREGATE SUM|MIN|MAX]——对给定的有序集合执行类似于集合的并集运算

 

 

基本命令:Hash操作 

  学习前先明确一下概念,这里我们把Rediskey称作key(键),把数据结构hash中的key称为field(域)。

hdel key field[field...]
  删除hash表中的一个或多个指定域,若keyfield不存在则会忽略;例:hdel hk k1 k2

hexists key field
  判断hash表中指定域是否存在,返回1,若keyfield不存在则返回0;例:hexists hk k1

hget key field
  获取hash表中指定域的值,key或域不存在时返回nil;例:hget hk k1

hgetall key
  获取hash表中所有域的值;例:hgetall hk,返回结果如:
  1) k1
  2) v1
  3) k2
  4) v2
  5) k3
  6) v3
123456各为一组,代表hash表的fieldvalue

hincrby key field increment
  为hash表中的指定域增加指定的整数值(负数亦可),若域不存在则默认初始化值为0后再进行操纵,若域存在但值不为数值但非64位有符号数时返回错误;例:hincrby hk k1 15

hincrbyfloat key field increment
  和hincrby相似,不同的是hincrbyfloat操作的是浮点数;例:hincrbyfloat hk k1 1.3

hkeys key
  返回hash表中的所有域,若key不存在返回空;例:hkeys hk

hvals key
  返回hash表中的所有val,若key不存在返回空;例:hvals hk

hlen key
  返回hash表中所有域的数量,若key不存在返回0;例:hlen hk

hset key field value
  将field-value设置到hash表中,若key不存在会新建hash表再赋值,若field已存在则会覆盖现有值;例:hset hk k v

hsetnx key field value
  和hset类似,但是hsetnx要求field不存在才能进行此操作,否则会返回0;例:hset hk k v

hmget key field[field...]
  返回hash表中多个指定域的值,若key不存在返回空,若field不存在返回nil;例:hmget hk k1 k2 k3

hmset key field1 value1[field value...]
  将一个或多个field-value设置到hash表中;例:hmset hk k4 v4 k5 v5 k6 v6

hscan key cursor[match pattern][count count]
  采用游标的方式对当前的hash进行迭代(具体描述请参考scan),例:hscan hk 0

Redis系列set主要操作函数小结

redis set string类型对象的无序集合,set不管存储多少对象,对存储对象的addremovetest操作的时间复杂度是O(1)set最多能包含 232 - 1 个member。

1、增加

语法:sadd key member[member...]

        解释:对特定key的set增加一个或多个值,返回是增加元素的个数。注意:对同一个member多次add,set中只会保留一份。

[plain] view plain copy 

1. [root@xsf001 ~]# redis-cli   

2. redis 127.0.0.1:6379> sadd stu zhangsan lisi wangwu #新增  

3. (integer) 3  

4. redis 127.0.0.1:6379> smembers stu    #得到set的所有member  

5. 1) "wangwu"  

6. 2) "lisi"  

7. 3) "zhangsan"  

8. redis 127.0.0.1:6379> sadd stu zhangsan #增加存在的member  

9. (integer) 0  

10. redis 127.0.0.1:6379> smembers stu  

11. 1) "wangwu"  

12. 2) "lisi"  

13. 3) "zhangsan"  

14. redis 127.0.0.1:6379> sadd tech wangwu liming joe  

15. (integer) 3  

16. redis 127.0.0.1:6379> sadd tech jim  

17. (integer) 1  

18. redis 127.0.0.1:6379> smembers tech  

19. 1) "jim"  

20. 2) "liming"  

21. 3) "wangwu"  

22. 4) "joe"  

  2、查询

a)smembers

语法:smembers key

解释:获取set中的所有member

1. redis 127.0.0.1:6379> smembers stu  

2. 1) "wangwu"  

3. 2) "lisi"  

4. 3) "zhangsan"  

5. redis 127.0.0.1:6379> smembers tech  

6. 1) "jim"  

7. 2) "liming"  

8. 3) "wangwu"  

9. 4) "joe"  

b)sismember

语法:sismember key member

解释:判断值是否是setmember。如果值是setmember返回1,否则,返回0

1. redis 127.0.0.1:6379> sismember tech jim #jim setmember  

2. (integer) 1  

3. redis 127.0.0.1:6379> sismember tech jim001 #jim001 不是setmember  

4. (integer) 0  

c)scard

语法:scard key

解释:返回setmember个数,如果set不存在,返回0

[plain] view plain copy 

1. redis 127.0.0.1:6379> scard tech  # tech 存在  

2. (integer) 4  

3. redis 127.0.0.1:6379> scard stud #stud 不存在  

4. (integer) 0  

5. redis 127.0.0.1:6379> scard stu  

6. (integer) 4  

d)srandmember

语法:srandmember key

解释:从set中返回一个随机member

[plain] view plain copy 

1. redis 127.0.0.1:6379> srandmember stu  

2. "zhangsan"  

3. redis 127.0.0.1:6379> srandmember stu  

4. "zhangsan"  

5. redis 127.0.0.1:6379> srandmember stu  

6. "wangwu"  

7. redis 127.0.0.1:6379> srandmember stu  

8. "zhangsan01"  


3、删除

aspop

语法:spop key

解释:移除并返回一个随机member

[plain] view plain copy 

1. redis 127.0.0.1:6379> smembers stu #pop  

2. 1) "zhangsan01"  

3. 2) "wangwu"  

4. 3) "lisi"  

5. 4) "zhangsan"  

6. redis 127.0.0.1:6379> spop stu  #移除一个随机member  

7. "lisi"  

8. redis 127.0.0.1:6379> smembers stu #pop  

9. 1) "zhangsan01"<span style="white-space:pre;">  </span>  

10. 2) "wangwu"  

11. 3) "zhangsan"  

b)srem

语法:srem key member [member ...]

解释:移除一个或多个member

[plain] view plain copy 

1. redis 127.0.0.1:6379> smembers tech  

2. 1) "jim"  

3. 2) "liming"  

4. 3) "wangwu"  

5. 4) "joe"  

6. redis 127.0.0.1:6379> srem tech jim   #移除jim  

7. (integer) 1  

8. redis 127.0.0.1:6379> smembers tech     

9. 1) "liming"  

10. 2) "wangwu"  

11. 3) "joe"  

12. redis 127.0.0.1:6379> srem tech liming joe #移除多个member  

13. (integer) 2  

14. redis 127.0.0.1:6379> smembers tech  

15. 1) "wangwu"  

c)smove

语法:smove source destination member

解释:将source中的member移动到destination

[plain] view plain copy 

1. redis 127.0.0.1:6379> smembers tech   #smove  

2. 1) "wangwu"  

3. redis 127.0.0.1:6379> smembers stu  

4. 1) "zhangsan01"  

5. 2) "wangwu"  

6. 3) "zhangsan"  

7. redis 127.0.0.1:6379> smove stu tech zhangsan  #zhangsan stu移动到tech  

8. (integer) 1  

9. redis 127.0.0.1:6379> smembers stu #smove  

10. 1) "zhangsan01"  

11. 2) "wangwu"  

12. redis 127.0.0.1:6379> smembers tech  

13. 1) "wangwu"  

14. 2) "zhangsan"  

 

4、其他

a)并集

语法:sunion key[key...]

解释:多个set的并集

[plain] view plain copy 

1. redis 127.0.0.1:6379> smembers stu  

2. 1) "zhangsan01"  

3. 2) "wangwu"  

4. redis 127.0.0.1:6379> sunion stu  

5. 1) "zhangsan01"  

6. 2) "wangwu"  

7. redis 127.0.0.1:6379> smembers tech  

8. 1) "wangwu"  

9. 2) "zhangsan"  

10. redis 127.0.0.1:6379> sunion stu tech  

11. 1) "zhangsan01"  

12. 2) "wangwu"  

13. 3) "zhangsan"  

b)把并集结果存储到set

语法:sunionstore destination key [key ...]

解释:求多个set并集,并把结果存储到destination 

[plain] view plain copy 

1. redis 127.0.0.1:6379> sunionstore same stu tech #stu tech并集结果存储在union  

2. (integer) 3  

3. redis 127.0.0.1:6379> smembers union  

4. 1) "zhangsan01"  

5. 2) "wangwu"  

6. 3) "zhangsan"  

 c)交集

语法:sinter key[key...]

解释:多个set的交集

[plain] view plain copy 

1. redis 127.0.0.1:6379> smembers stu  

2. 1) "zhangsan01"  

3. 2) "wangwu"  

4. redis 127.0.0.1:6379> smembers tech  

5. 1) "wangwu"  

6. 2) "zhangsan"  

7. redis 127.0.0.1:6379> sinter stu tech  

8. 1) "wangwu"  

d)把交集结果存储到指定set

语法:sinterstore destination key [key ...]

解释:把多个set的交集结果存储到destination 

[plain] view plain copy 

1. redis 127.0.0.1:6379> sinterstore inter stu tech  

2. (integer) 1  

3. redis 127.0.0.1:6379> smembers inter  

4. 1) "wangwu"  

e) set中在其他set中不存在member

语法:sdiff key[key ...]

[plain] view plain copy 

1. redis 127.0.0.1:6379>   

2. redis 127.0.0.1:6379> smembers stu  

3. 1) "zhangsan01"  

4. 2) "wangwu"  

5. redis 127.0.0.1:6379> smembers tech  

6. 1) "wangwu"  

7. 2) "zhangsan"  

8. redis 127.0.0.1:6379> sdiff stu tech  

9. 1) "zhangsan01"  

10. redis 127.0.0.1:6379> sdiff tech stu  

11. 1) "zhangsan"  


f)把set中在其他set中不存在的member存储到新的set

语法:sdiffstore key[key...]

[plain] view plain copy 

1. redis 127.0.0.1:6379> sdiffstore diff stu tech  

2. (integer) 1  

3. redis 127.0.0.1:6379> smembers diff  

4. 1) "zhangsan01"  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值