Redis笔记(二)

点击上方蓝字   关注






1

不知道昨天讲完了Redis的strings之后大家感觉如何,那些命令有没有都尝试一下,然后有人问我那200多个命令是不是都需要记住,其实个人觉得必要不是很大,但是大概都要了解是必须的,不能说你接触一个设计的时候因为不知道redis的某些方面而和她擦肩而过,采用了别的相对不够便捷的设计方案,这样就不好了。

这里在补充一个Redis的知识点,Redis的string不要和c语言的字符串混淆,这是Redis自己实现的一种抽象类型,simple dynamic string简称sds,我们现在做一个最简单的操作,就是在redis-cli中,我们做最简单的set leslie handsome,这个时候键值对的键是一个字符串对象,对象的底层实现的一个保存着"leslie"的的sds,键值对的值也是一个字符串对象,对象的底层实现是一个保存着“handsome”的sds。

SDS不只是单纯的用来保存Redis数据库中的字符串值,还被用作缓冲区,AOF模块的AOF缓冲区,客户端状态的输入缓冲区,都是SDS实现的。关于SDS的具体作用和其与C字符串的区别,我们回头单独讲,还是很有意思的。




2


今天要讲的是另外一种数据结构list,也就是链表,在Redis的实现里,占有举足轻重的地位,列表键,发布和订阅,慢查询,监视器都是用链表实现的,等我们讲到各种功能的时候再一一讲解。

Redis的链表实现其实是一个双端链表,每个链表节点是有一个listNode结构来表示的,每个节点都有一个指向前置节点和后置节点的的指针。我们通过为链表设置不用的类型特定函数,就可以让Redis的链表保存不用的数据类型。




3


1    BLPOP key1 [key2 ] timeout 
移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。    

2    BRPOP key1 [key2 ] timeout 
移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。    

3    BRPOPLPUSH source destination timeout 
从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。    

4    LINDEX key index 
通过索引获取列表中的元素    

5    LINSERT key BEFORE|AFTER pivot value 
在列表的元素前或者后插入元素    

6    LLEN key 
获取列表长度    

7    LPOP key 
移出并获取列表的第一个元素    

8    LPUSH key value1 [value2] 
将一个或多个值插入到列表头部    

9    LPUSHX key value 
将一个值插入到已存在的列表头部    

10    LRANGE key start stop 
获取列表指定范围内的元素    

11    LREM key count value 
移除列表元素    

12    LSET key index value 
通过索引设置列表元素的值    

13    LTRIM key start stop 
对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。    

14    RPOP key 
移除并获取列表最后一个元素    

15    RPOPLPUSH source destination 
移除列表的最后一个元素,并将该元素添加到另一个列表并返回    

16    RPUSH key value1 [value2] 
在列表中添加一个或多个值    

17    RPUSHX key value 
为已存在的列表添加值    


这些命令都是很常见的大家一定都要试试,明天见喽


文 Leslie

排版 Leslie

图均源自网络

喜欢请转发,嘿嘿嘿

Redis笔记(二)

相关文章:

  • 2022-01-20
  • 2022-12-23
  • 2021-10-13
  • 2021-08-08
  • 2021-06-30
  • 2021-05-17
  • 2021-10-22
  • 2022-12-23
猜你喜欢
  • 2021-08-31
  • 2021-12-25
  • 2021-08-28
  • 2021-09-19
  • 2021-04-08
  • 2021-07-28
  • 2022-02-08
相关资源
相似解决方案