redis字符类型-哈希、集合

redis字符类型-哈希、集合

1.redis字符-哈希

哈希操作命令:

  • hash看起来像一个‘hash’的样子,由键值对组成

  • HMSET指令设置hash中的多个域

  • HGET取回单个域

  • HGETALL取回全部域信息

之前的set和mset只能是单个key的赋值,哈希可以给一个key附多个值

1.1.哈希命令操作举例

1.我们先启动redis服务
[redis_6379]# redis-server /opt/redis_cluster/redis_6379/conf/redis_6379.conf

2.查询服务正常开启后
[root@redis_6379]# ps -ef |grep redis
root       3211      1  0 10:22 ?        00:00:01 redis-server 127.0.0.1:6379
root       3995   3074  0 10:59 pts/1    00:00:00 grep --color=auto redis

3.连接进去redis数据库
[root@redis_6379]# redis-cli -h 192.168.40.1
192.168.40.1:6379>

4.我们插入一组数据,使用hmset命令可以向数据库中插入一组数据和之前的set命令一样。
192.168.40.1:6379> hmset user:10 username zhangsan age 20 job IT
OK

5.我们插入一组数据,这边使用hmget查询,也可以附带多个值
192.168.40.1:6379> hmget user:10 username
1) "zhangsan"

6.根据值查询出对应的信息
192.168.40.1:6379> hmget user:10 username age job
1) "zhangsan"
2) "20"
3) "IT"

7.也可以再次使用hmset命令向后追加字符
192.168.40.1:6379> hmset user:10 qq 123123
OK

8.HGETALL命令可以查询这个序列的所有信息
192.168.40.1:6379> hgetall user:10
1) "username"
2) "zhangsan"
3) "age"
4) "20"
5) "job"
6) "IT"
7) "qq"
8) "123123"

9.同样的redis也是支持存入中文的,只不过存入之后查询会变成编码
192.168.40.1:6379> HMSET user:10 pet 小南
OK
192.168.40.1:6379> hgetall user:10
 1) "username"
 2) "zhangsan"
 3) "age"
 4) "20"
 5) "job"
 6) "IT"
 7) "qq"
 8) "123123"
 9) "pet"
10) "\xe5\xb0\x8f\xe5\x8d\x97\xe2\x80"

10.文件导出之后,内容还是之前输入的中文。
[root@localhost redis_6379]# redis-cli hgetall user:10 > 1.txt
[root@localhost redis_6379]# cat 1.txt 
username
zhangsan
age
20
job
IT
qq
123123
pet
小南

2.redis字符-集合

1.集合使用命令
SADD  创建集合
SMEMBERS  查询某个集合中所有的信息
SDIFF  对比集合内容然后显示出另一个集合没有的数
SINTER  对比出两个或者多个集合中数字相同值
SUNION 将集合中的信息按照顺序列出

2.1.集合命令操作举例

创建两个集合,对其中的key赋值
[root@localhost redis_6379]# redis-cli 
127.0.0.1:6379> SADD set1 1 2 3 5 7
(integer) 5
127.0.0.1:6379> SADD set2 2 5 6  7 10
(integer) 5
使用SMEMBERS查询某个集合所有信息举例
127.0.0.1:6379> SMEMBERS set1 
1) "1"
2) "2"
3) "3"
4) "5"
5) "7"
6) "11"
127.0.0.1:6379> SMEMBERS set2
1) "2"
2) "5"
3) "6"
4) "7"
5) "10"
6) "15"
以集合1或集合2为例,来对比另一个集合key不一样的地方
127.0.0.1:6379> SDIFF set1 set2
1) "1"
2) "3"
3) "11"
127.0.0.1:6379> SDIFF set2 set1
1) "6"
2) "10"
3) "15"
SINTER命令,对比两个key中相同值的数据
127.0.0.1:6379> SINTER set1 set2
1) "2"
2) "5"
3) "7"
SUNION把两个key的数据从大到小列出排序
127.0.0.1:6379> SUNION set1 set2
1) "1"
2) "2"
3) "3"
4) "5"
5) "6"
6) "7"
7) "10"
8) "11"
9) "15"
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值