Redis的5种数据结构及常用命令

2019-04-23 13:56:46 8579

Redis 是一种高级的 key:value 储存系统,value 的支持5钟数据类型,分别是:

    1. string 字符串

    2. lists 字符串列表

    3. sets 字符串集合

    4. sorted sets 有序字符串集合

    5. hashes 哈希值

这5中数据结构,分别有以下特性和常用操作命令

1.string 字符串

Redis 的字符串存储是用二进制方式存储的,因此可以存放超文本类型的文件,比如图片音乐等。

Redis 的字符串操作可以将字符串直接转化为数值,无需手动转换。

常用命令

①读存字符串

127.0.0.1:6379> SET mystring "HelloWorld" //存“HelloWorld”到 mystring 中 
OK 
127.0.0.1:6379> GET mystring //读取 mystring 
"HelloWorld"

②对数字递增递减操作

127.0.0.1:6379> SET num 100 
OK 
127.0.0.1:6379> INCR num  //加1操作 
(integer) 101 
127.0.0.1:6379> DECR num  //减1操作 
(integer) 100 
127.0.0.1:6379> INCRBY num 10  //加操作,10代表+10 
(integer) 110 
127.0.0.1:6379> DECRBY num 10 //减操作,10代表-10 
(integer) 100

2.lists 字符串列表

字符串列表 list 是用链表的形式存储的,链表是指存储位置随机,但是每个链表单元的头部有上单元的存储位置,尾部有下一单元的存储位置,将这些位置链接起来就变成了链表,链表的好处是存储速度快,缺点是定位时间慢。

常用操作

LPUSH key value [value…] 左侧插入元素

RPUSH key value [value…] 右侧插入元素

LRANGE key start stop 查询制定范围元素

127.0.0.1:6379> LPUSH ilist "1" 
(integer) 1 
127.0.0.1:6379> RPUSH ilist "2" 
(integer) 2 
127.0.0.1:6379> LPUSH ilist "3" 
(integer) 3 
127.0.0.1:6379> LRANGE ilist 0 1  //查询从0到1的元素 
1) "3" 
2) "1" 
127.0.0.1:6379> LRANGE ilist 0 –1 //查询从0到末尾的元素 
1) "3" 
2) "1" 
3) "2"

3.sets 集合

无序集合,指令以S开头。

常用操作

SADD key number [number …]增加新元素

SMEMBERS key 列出所有元素

SISMEMBER key number 判断元素是否存在,存在返回1,不存在返回0

SUNION key [key …] 取两个集合的并集

4.sorted sets 有序集合

有序集合,每个元素都关联有序号(SCORES),可以以此排序。命令以Z开头。

常用操作

ZADD key score member [[score member] [score member] ...] 增加元素

ZRANGE key start stop [WITHSCORES] 列出元素

127.0.0.1:6379> ZADD zlist 1 "A" 
(integer) 1 
127.0.0.1:6379> ZADD zlist 2 "B" 
(integer) 1 
127.0.0.1:6379> ZADD zlist 3 "C" 
(integer) 1 
127.0.0.1:6379> ZRANGE zlist 0 –1  //查询0元素到最后的所有元素 
1) "A" 
2) "B" 
3) "C" 
127.0.0.1:6379> ZRANGE zlist 0 -1 WITHSCORES //根据序列查询 
1) "A" 
2) "1" 
3) "B" 
4) "2" 
5) "C" 
6) "3"

5.hashes 哈希值

哈希值是字符串与字符串之间的映射,比如个人信息,“姓名”和“小明”两个字符串映射,“性别”和“男”两个字符串映射。

常用命令

HMSET key field value [field value ...] 同时将多个 field-value (域-值)对设置到哈希表 key 中

HGETALL key 返回哈希表 key 中,所有的域和值

HSET key field value 修改 key 对应的某值

127.0.0.1:6379> HMSET user name xiaoming sex male age 23 
OK 
127.0.0.1:6379> HGETALL user 
1) "name" 
2) "xiaoming" 
3) "sex" 
4) "male" 
5) "age" 
6) "23" 
127.0.0.1:6379> HSET user age 18 //修改了age为18 
(integer) 0 
127.0.0.1:6379> HGETALL user 
1) "name" 
2) "xiaoming" 
3) "sex" 
4) "male" 
5) "age" 
6) "18"


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: