List 简介:
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)
require 'redis'
#list 添加元素
redis.rpush 'logs','some logs'
redis.rpush 'logs','another logs'
redis.rpush 'logs','yet another logs'
redis.rpush 'logs','also another log'
#list 左数下表为0,1,2,3 右数下标为 -1,-2,-3 获取列表指定范围内的元素
p redis.lrange('logs',0,-1) #返回list 列表
p redis.lrange('logs',0,0) # 返回list第一个元素
p redis.lrange('logs',0,1)
p redis.lrange('logs',0,2)
p redis.lrange('logs',0,3)
p redis.lrange('logs',-1,-1)
p redis.lrange('logs',0,-3)
p redis.llen('logs') #获取list 的长度
p redis.lpop('logs') #移出并获取列表的第一个元素
p redis.lpush('logs','some logs') #插入一个或多个值到列表头部
p redis.lrange('logs',0,-1)
p redis.blpop('logs') #移出并获取第一个元素,如果list没有元素会阻塞列表知道等待超时或出现可弹出元素为止
p redis.lrange('logs',0,-1)
p redis.brpop('logs') #移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
p redis.lrange('logs',0,-1)
#lindex 通过索引获取列表中的元素
p redis.lindex('logs',0)
p redis.lindex('logs',1)
p redis.lindex('logs',2)
p redis.lindex('logs',-1)
#将一个或多个值插入到列表头部
p redis.lpush('logs','bad boy')
p redis.lpush('logs',['ok?','no?','yes'])
p redis.lrange('logs',0,-1)
#Lrem 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素
#count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
#count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
#count = 0 : 移除表中所有与 VALUE 相等的值
p redis.lrem('logs',0,'bad boy')
p redis.lrange('logs',0,-1)
#通过索引设置列表元素的值
p redis.lset('logs',0,'smart cat')
p redis.lrange('logs',0,-1)
p redis.lset('logs',-1,'bad day')
p redis.lrange('logs',0,-1)
#对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
p redis.ltrim('logs',0,4) #保留0-4之间的元素
p redis.lrange('logs',0,-1)
#移除并获取列表最后一个元素
p redis.rpop('logs')
p redis.lrange('logs',0,-1)
#在列表中添加一个或多个值
p redis.rpush('logs','very good')
p redis.lrange('logs',0,-1)
p redis.rpush('logs',['cute','sama','jiang zi'])
p redis.lrange('logs',0,-1)