目录
介绍
命令行模式
增
删
改
查
应用
栈:先进后出
队列:先进先出
有限集合
消息队列
Redis支持五种数据类型:String, Hash, List, Set, ZSet,这个系列介绍一下如何使用这些数据类型,本篇介绍使用命令行模式以及python客户端对redis进行操作,实际项目的过程中也大多是一模一样的用法。
相关内容:
Redis系列(一)、CentOS7下安装Redis6.0.3稳定版
Redis系列(二)、数据类型之字符串String
Redis系列(三)、数据类型之哈希Hash
------------------------Redis列表类型----------------------
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 2^32 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
因此也有项目直接使用redis做消息队列,我们之前介绍filebeat+logstash+redis的时候也使用redis存储filebeat采集的日志进redis的列表类型中,由logstash从其中消费,传送门。
进入命令行模式:
redis-cli -a password_value
redis-cli -a password_value --raw
--raw 避免中文显示乱码
使用下面的命令查看手册:
help @list
从左边插入元素,从左边依次追加进栈,先进后出,后进先出:
LPUSH key element [element ...]
lpush mylist 'wyk'
lpush mylist '28' 'csdn' '[email protected]'
从右边插入元素,从右边依次追加进队列,先进先出,后进后出:
RPUSH key element [element ...]
rpush mylist2 'wyk'
rpush mylist2 '28' 'csdn' '[email protected]'
与sting类型中的nx类似,只有当list存在时才会从左边依次追加元素:
LPUSHX key element [element ...]
与lpushx类似,只有当list存在时才会从右边依次追加元素:
RPUSHX key element [element ...]
从list中指定的元素的前/后 插入一个新元素:
LINSERT key BEFORE|AFTER pivot element
从列表左侧开始移除count个指定的元素,返回删除的个数:
LREM key count element
lrem mylist2 1 wyk
lrem mylist2 2 new_val
lrem mylist2 3 new_val2
根据下标修改元素内容,下标从左边算起,以0开始:
LSET key index element
将原列表截取为从下标start到下标stop闭区间的列表,即原列表变为一个第start+1个到第stop+1个元素的列表:
LTRIM key start stop
查看列表中元素的个数:
LLEN key
根据起止下标查询列表元素,负数表示从后往前,跟python里一样:
LRANGE key start stop
lrange key 0 -1 #表示查看全部元素
lrange key -1 -1 #表示查看最右边的元素
根据指定的index下标查看列表中的元素,下标从0开始:
LINDEX key index
从左边消费列表中的元素,消费完之后从列表中删除:
LPOP key
从右边消费列表中的元素,消费完之后从列表中删除:
RPOP key
消费列表A的最右边的元素返回,然后追加到列表B的最左边:
RPOPLPUSH source destination
RPOPLPUSH List_A List_B
从列表中左侧查询元素,返回列表的key和左侧第一个元素,若所有查询的列表中都没有元素,则会阻塞等待至设置的timeout秒之后返回空,若在这期间,这些列表新增了元素,则会立刻消费并返回该元素:
BLPOP key [key ...] timeout
与blpop类似,区别是brpop从右侧消费:
BRPOP key [key ...] timeout
结合brpop和lpush,阻塞消费并将消费到的元素添加至target列表的最左侧:
BRPOPLPUSH source destination timeout
lpush + lpop
lpush + rpop
lpush + ltrim
lpush + brpop
Python客户端与命令行函数基本上完全一致,篇幅太长因此不再过多的展示。
希望本文对你有帮助,请点个赞鼓励一下作者吧~ 谢谢!