redis 数据类型_那个从阿拉德出来的勇士的技术博客_51CTO博客
source link: https://blog.51cto.com/u_15148274/5508891
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
redis 数据类型
原创redis数据类型一共有五种,包括-string、-list、-set、-sort set、-hash
简单的使用介绍
-string
string 为最简单的类型, 与Memcached一样的类型,一个key对应一个value,其支持的操作与Memcached的操作类似,它的功能更丰富,设置可以存二进制的对象。
在redis的目录下执行 redis-cli 即可进入 redis的命令行(没设置密码的情况下可以直接进入)
例子: 存string类型的数据
redis-cli 进入命令行
#127.0.0.1:6379> set mykey 123 使用set 指定名称 mykey 为名字 123 为它的值
OK 返回结果为 ok
#127.0.0.1:6379> get mykey 使用get 来获取 mykey的值
"123" 为返回的值
#127.0.0.1:6379> MSET k1 1 k2 2 ke3 3 使用mset 定义多个键值对 k1 的值为1 k2的值为2 ...
OK 返回结果为ok
#127.0.0.1:6379> MGET k1 mykey 使用mget 查看多个的返回值
1) "1"
2) "123"
-list
list 是一个链表结构,主要功能是push,pop获取一个范围的所有值等等,操作中key理解为链表的名字
使用list结构,可以轻松的实现最新消息的排行等功能,list的另一个应用就是消息队列,可以利用list的push操作将任务存在list中,然后工作线程再用pop操作将任务取出进行执行
可以理解为 push 为压进去 pop为取出来
使用格式为 LPUSH 、 LPOP
redis-cli 进入命令行
#127.0.0.1:6379> LPUSH list1 '123456' 使用lpush 指定list1 推进去一个123456值
(integer) 1
#127.0.0.1:6379> LPUSH list1 'abcd' 同样指定list1 在推一个abcd值
(integer) 1
#127.0.0.1:6379> LRANGE list1 0 -1 使用 lrange 查看list1的值(顺序显示) 0 -1 表示零开始-1结束
1) "abcd"
2) "123456"
#127.0.0.1:6379> lpop list1 使用lpop 指定list1 能取出值
"abcd"
set 是集合对集合的操作有添加删除元素,有对多个集合求交并差等操作,操作中key理解为集合的名字
redis-cli 进入命令行
#127.0.0.1:6379> SADD set1 a 使用sadd 创建一个名为set1的集合 指定元素为a
(integer) 1
#127.0.0.1:6379> SADD set1 b 再次指定元素set1为b
(integer) 1
#127.0.0.1:6379> SMEMBERS set1 使用smembers 查看集合set1的元素信息
1) "a"
2) "b"
#127.0.0.1:6379> SADD set2 a 再次创建集合set2 指定不同的元素
(integer) 1
#127.0.0.1:6379> SADD set2 b
(integer) 1
#127.0.0.1:6379> SADD set2 1
(integer) 1
#127.0.0.1:6379> SMEMBERS set2 查看
1) "a"
2) "1"
3) "b"
#127.0.0.1:6379> SUNION set1 set2 使用 sunion 查看set1 set2 的并集
1) "a" 返回值表示两个集合的重复的不显示 共有的元素显示出一个
2) "1"
3) "b"
#127.0.0.1:6379> SINTER set1 set2 使用 sinter 查看 交集 只显示出两个集合中元素有一样的
1) "a"
2) "b"
#127.0.0.1:6379> SDIFF set1 set2 使用sdiff 查看差集 没有的话显示下面的结果表示空
(empty array) 有的话显示两个集合中的差元素
#127.0.0.1:6379> SREM set1 a 使用srem 删除集合set1 中的 a元素
(integer) 1
#127.0.0.1:6379> SMEMBERS set1 验证是否删除
1) "b"
-sort set
sort set 是有序集合 它比set 多了一个score 使得集合中的元素能够昂score进行有序排序
redis-cli 进入命令行
#127.0.0.1:6379> ZADD set3 22 aaa 使用zadd 创建set3集合 22表示sort aaa表示元素
(integer) 1
#127.0.0.1:6379> ZADD set3 11 'bbb 123' 可以指定多个元素 有空格需要使用单引号
(integer) 1
#127.0.0.1:6379> ZADD set3 33 'ccc 123'
(integer) 1
#127.0.0.1:6379> ZADD set3 44 'ddd 123'
(integer) 1
#127.0.0.1:6379> ZRANGE set3 0 -1 使用zrange 查看 返回结果 根据 sort的大小进行排序
1) "bbb 123" 0 -1 表示0开始 到-1结束
2) "aaa"
3) "ccc 123"
4) "ddd 123"
#127.0.0.1:6379> ZREVRANGE set3 0 -1 使用zrevrange 进行对set3集合的元素按照sort的大小进行反向排序
1) "ddd 123"
2) "ccc 123"
3) "aaa"
4) "bbb 123"
-hash
hash 在Memcached中 我们经常将一些结构化的信息打包成hashmap,在客户端序列化后存储成一个字符串的值 ,(一般是JSON格式)
redis-cli 进入命令行
#127.0.0.1:6379> HSET hash1 aaa 111 使用hset 指定hash1 aaa为子元素 111为子元素的值
(integer) 1
#127.0.0.1:6379> HSET hash1 bbb 222 为shah1 增加三对元素并分别赋予了值
(integer) 1
#127.0.0.1:6379> HSET hash1 ccc 333
(integer) 1
#127.0.0.1:6379> HGET hash1 aaa 使用hget 指定hash1 查看aaa元素的值
"111"
#127.0.0.1:6379> HGET hash1 bbb
"222"
#127.0.0.1:6379> HGETALL hash1 使用hgetall 指定hash1 显示出全部的元素与值
1) "aaa"
2) "111"
3) "bbb"
4) "222"
5) "ccc"
6) "333"
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK