【Ubuntu 18.04】Redis基础学习(3)

Redis基础学习(3)

五大数据类型之三

Set(集合)

set中的值不能重读

添加和判断

127.0.0.1:6379> sadd set "hello"    #set里添加
(integer) 1
127.0.0.1:6379> sadd set "111222"
(integer) 1
127.0.0.1:6379> sadd set "222333"
(integer) 1
127.0.0.1:6379> SMEMBERS set      #查看
1) "222333"
2) "111222"
3) "hello"
127.0.0.1:6379> SISMEMBER set hello    #判断是否存在
(integer) 1
127.0.0.1:6379> SISMEMBER set re
(integer) 0

 移除

127.0.0.1:6379> scard set        #查看集合中的个数
(integer) 3
127.0.0.1:6379> srem set 111222   #移除集合中的指定元素
(integer) 1
127.0.0.1:6379> scard set
(integer) 2
127.0.0.1:6379> SMEMBERS set
1) "222333"
2) "hello"

随机抽取数据

127.0.0.1:6379> SMEMBERS set
1) "222333"
2) "hello"
127.0.0.1:6379> SRANDMEMBER set    #随机抽取一个
"222333"
127.0.0.1:6379> SRANDMEMBER set
"222333"
127.0.0.1:6379> SRANDMEMBER set
"hello"
127.0.0.1:6379> SRANDMEMBER set 2   #随机抽取指定个数的元素
1) "222333"
2) "hello"

随机弹出数据

127.0.0.1:6379> SMEMBERS set
1) "333444"
2) "222333"
3) "hello"
127.0.0.1:6379> spop set     #随机删除set集合中的元素
"222333"
127.0.0.1:6379> SMEMBERS set  
1) "333444"
2) "hello"

移动指定的元素到另一个集合中

127.0.0.1:6379> sadd set "hello"
(integer) 1
127.0.0.1:6379> sadd set "fdfdfd"
(integer) 1
127.0.0.1:6379> sadd set "fdjkfd"
(integer) 1
127.0.0.1:6379> sadd sad "ejrek"
(integer) 1
127.0.0.1:6379> smove set sad "hello"
(integer) 1
127.0.0.1:6379> SMEMBERS set 
1) "fdjkfd"
2) "fdfdfd"
127.0.0.1:6379> SMEMBERS sad
1) "ejrek"
2) "hello"

差集,交集,并集

- 差集 sdiff

- 交集 sinter

- 并集 sunion

127.0.0.1:6379> sadd key 11
(integer) 1
127.0.0.1:6379> sadd key 22
(integer) 1
127.0.0.1:6379> sadd key 33
(integer) 1
127.0.0.1:6379> sadd key 44
(integer) 1
127.0.0.1:6379> sadd key1 55
(integer) 1
127.0.0.1:6379> sadd key1 66
(integer) 1
127.0.0.1:6379> sadd key1 77
(integer) 1
127.0.0.1:6379> sadd key1 11
(integer) 1
127.0.0.1:6379> sdiff key key1         #差集
1) "22"
2) "33"
3) "44"
127.0.0.1:6379> sinter key key1        #交集
1) "11"
127.0.0.1:6379> sunion key key1        #并集
1) "11"
2) "22"
3) "33"
4) "44"
5) "55"
6) "66"
7) "77"

Hash

创建和查看

Map集合,key-value,key-map map集合,和string类型没有区别。

格式:set hash field “111”

127.0.0.1:6379> hset hash field cccc   #设置一个值
(integer) 1
127.0.0.1:6379> hget hash field       #获取一个值
"cccc"
127.0.0.1:6379> hmset hash field hello field2 world  #设置多个值
OK
127.0.0.1:6379> hmget hash field field2     #获取多个值
1) "hello"
2) "world"
127.0.0.1:6379> hgetall hash          #获取全部的值
1) "field"
2) "hello"
3) "field2"
4) "world"

删除

127.0.0.1:6379> hdel hash field   #删除hash指定的值
(integer) 1
127.0.0.1:6379> hgetall hash   #对应的值也没有了
1) "field2"
2) "world"

获取

127.0.0.1:6379> HGETALL hash   
1) "field2"
2) "world"
3) "field"
4) "hello"
127.0.0.1:6379> hlen hash   #获取hash里的字符数量
(integer) 2
127.0.0.1:6379> hkeys hash   #只获取field这个字段的值
1) "field2"
2) "field"
127.0.0.1:6379> hvals hash    #只获取hash里的值
1) "world"
2) "hello"

判断

127.0.0.1:6379> hexists hash field1
(integer) 0
127.0.0.1:6379> HEXISTS hash field   #判断指定的字段是否存在
(integer) 1
127.0.0.1:6379> hset hash field3 555    
(integer) 1
127.0.0.1:6379> hincrby hash field3 1   #增量
(integer) 556
127.0.0.1:6379> hincrby hash field3 -1   #减量
(integer) 555
127.0.0.1:6379> hsetnx hash field4 hello  #如果不存在就设置
(integer) 1
127.0.0.1:6379> hsetnx hash field4 world  #如果存在就不设置
(integer) 0

hash可以做用户信息之类的保存,或者经常变动的信息就用hash做存储,hash更适合对象存储,string适合字符串的存储

 

参考

https://www.bilibili.com/video/BV1S54y1R7SB?p=1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值