9

redis 数据类型_那个从阿拉德出来的勇士的技术博客_51CTO博客

 2 years ago
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.
neoserver,ios ssh client

redis 数据类型

原创

想剪个寸头 2022-07-24 18:03:37 ©著作权

文章标签 redis 命令行 返回结果 文章分类 Linux 系统/运维 阅读数206

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"


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK