1 LPUSH/LPUSHX/LRANGE:
/> redis-cli #在Shell提示符下启动redis客户端工具。
redis 127001:6379> del mykey
(integer) 1
#mykey键并不存在,该命令会创建该键及与其关联的List,之后在将参数中的values从左到右依次插入。
redis 127001:6379> lpush mykey a b c d
(integer) 4
#取从位置0开始到位置2结束的3个元素。
redis 127001:6379> lrange mykey 0 2
1) "d"
2) "c"
3) "b"
#取链表中的全部元素,其中0表示第一个元素,-1表示最后一个元素。
redis 127001:6379> lrange mykey 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
#mykey2键此时并不存在,因此该命令将不会进行任何 *** 作,其返回值为0。
redis 127001:6379> lpushx mykey2 e
(integer) 0
#可以看到mykey2没有关联任何List Value。
redis 127001:6379> lrange mykey2 0 -1
(empty list or set)
#mykey键此时已经存在,所以该命令插入成功,并返回链表中当前元素的数量。
redis 127001:6379> lpushx mykey e
(integer) 5
#获取该键的List Value的头部元素。
redis 127001:6379> lrange mykey 0 0
1) "e"
2 LPOP/LLEN:
redis 127001:6379> lpush mykey a b c
redis是一个key-value存储系统和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted
set
--有序集合)和hash(哈希类型)。
这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的 *** 作,而且这些 *** 作都是原子性的。在此基础上,redis支持各种不同方式的排序。
查询出来的结果集是返回一个List,然后你倒序添加数据到redis里面就可以了。
// 返回一个数据库查询结果集,list
List<Map> list = userServicegetUserList();
//倒序把数据放进去就好了,不然取出来的数据,跟你查询出来的结果数据是相反的
for (int i = listsize() - 1; i >= 0; i--) {
RedisPoolgetClient()lpush("userList", listget(i)toString());
}
----------------------------下面是RedisPool类-------------
import redisclientsjedisJedis;
/
redis缓存运用
@author TongJun
/
public class RedisPool {
// redis 对象
private static Jedis jedis = null;
private static final String IP = "127001";
private static final int PROT = 6379;
/
单例模式构造redis对象
@return
/
public static synchronized Jedis getClient() {
if (jedis == null) {
jedis = new Jedis(IP, PROT);
}
return jedis;
}
}
1、 list 实际上是一个链表, before Node after , left , right 都可以插入值
2、如果 key 不存在,则创建新的链表
3、如果 key 存在,新增内容
4、如果移除了所有值(空链表),也代表不存在
5、在两边插入或者改动值,效率最高!修改中间元素,效率相对较低
消息队列:左入右出( lpush rpop )、栈:左入左出( lpush lpop )
以上就是关于redis里list类型的数据怎么使用全部的内容,包括:redis里list类型的数据怎么使用、redis怎么缓存list<object>、java代码中 单表查询出的list集合 怎么读写到redis中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)