Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)
一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
1、LPUSH key value1 [value2] :将一个或多个值插入到列表头部。
2、LRANGE key start stop:获取列表指定范围内的元素。
3、LLEN key:获取列表长度。 4、RPUSH key value1 [value2] :在列表中添加一个或多个值,加到列表的位置与LPUSH相反。
5、RPUSHX key value:为已存在的列表添加值。 6、LSET key index value:通过索引设置列表元素的值。
7、RPOPLPUSH source destination:移除列表的最后一个元素,并将该元素添加到另一个列表并返回。
8、RPOP key:移除并获取列表最后一个元素。 9、LREM key count value:移除列表元素。
10、LPOP key:移出并获取列表的第一个元素。11、LINDEX key index:通过索引获取列表中的元素。
12、LINSERT key BEFORE|AFTER pivot value:在列表的元素前或者后插入元素。
13、LPUSHX key value:将值插入到已存在的列表头部。
14、LTRIM key start stop:对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
16、BRPOPLPUSH source destination timeout:从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
17、BRPOP key1 [key2 ] timeout:移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
18、BLPOP key1 [key2 ] timeout:移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
代码实现:
public class RedisTest{
private static Jedis instanceJedis(){
return JedisUtil.getInstance();
}public static void main(String[] args) {
Jedis jedis = instanceJedis();
String key = "listKey";
String desKey = "listKey2";
jedis.lpush(key, "listValue1","listValue2");
jedis.lpush(desKey, "v1","v2");
System.out.println("获取列表指定范围内的元素:"+jedis.lrange(key, 0, 2));
System.out.println("获取列表长度:"+jedis.llen(key));
jedis.rpush(key, "listValue3");
jedis.rpushx(key, "listValue4");
System.out.println("获取列表指定范围内的元素:"+jedis.lrange(key, 0, 10));
//通过索引设置列表元素的值
jedis.lset(key, 0, "firstValue");
System.out.println("移除列表的最后一个元素,并将该元素添加到另一个列表并返回:"+jedis.rpoplpush(key, desKey));
System.out.println("移除并获取列表最后一个元素:"+jedis.rpop(key));
//移除列表元素
jedis.lrem(key, 1, "listValue4");
System.out.println("移出并获取列表的第一个元素:"+jedis.lpop(key));
System.out.println("通过索引获取列表中的元素:"+jedis.lindex(key, 1));
//在列表的元素前或者后插入元素
jedis.linsert(key, LIST_POSITION.AFTER, "listValue5", "listValue2");
//将一个或多个值插入到已存在的列表头部
jedis.lpushx(key, "listValue6");
System.out.println("获取列表指定范围内的元素:"+jedis.lrange(key, 0, 10));
jedis.ltrim(key, 0, 1);
System.out.println("获取列表指定范围内的元素:"+jedis.lrange(key, 0, 10));
jedis.brpoplpush(key, desKey, 10);
jedis.brpop(1, key);
jedis.blpop(1, key);
System.out.println("获取列表指定范围内的元素:"+jedis.lrange(key, 0, 10));
}}
输出如下:
获取列表指定范围内的元素:[listValue2, listValue1, listValue1]
获取列表长度:3
获取列表指定范围内的元素:[listValue2, listValue1, listValue1, listValue3, listValue4]
移除列表的最后一个元素,并将该元素添加到另一个列表并返回:listValue4
移除并获取列表最后一个元素:listValue3
移出并获取列表的第一个元素:firstValue
通过索引获取列表中的元素:listValue1
获取列表指定范围内的元素:[listValue6, listValue1, listValue1]
获取列表指定范围内的元素:[listValue6, listValue1]
获取列表指定范围内的元素:[]