java代码中 单表查询出的list集合 怎么读写到redis中

java代码中 单表查询出的list集合 怎么读写到redis中,第1张

查询出来的结果集是返回一个List,然后你倒序添加数据到redis里面就可以了。

// 返回一个数据库查询结果集,list

List<Map>list = userService.getUserList()

//倒序把数据放进去就好了,不然取出来的数据,跟你查询出来的结果数据是相反的

for (int i = list.size() - 1i >= 0i--) {

RedisPool.getClient().lpush("userList", list.get(i).toString())

}

----------------------------下面是RedisPool类-------------

import redis.clients.jedis.Jedis

/**

* redis缓存运用

*

* @author TongJun

*

*/

public class RedisPool {

// redis 对象

private static Jedis jedis = null

private static final String IP = "127.0.0.1"

private static final int PROT = 6379

/**

* 单例模式构造redis对象

*

* @return

*/

public static synchronized Jedis getClient() {

if (jedis == null) {

jedis = new Jedis(IP, PROT)

}

return jedis

}

}

应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mysql。同时要注意避免冲突,在redis启动时去mysql读取所有表键值存入redis中,往redis写数据时,对redis主键自增并进行读取,若mysql更新失败,则需要及时清除缓存及同步redis主键。这样处理,主要是实时读写redis,而mysql数据则通过队列异步处理,缓解mysql压力,不过这种方法应用场景主要基于高并发,而且redis的高可用集群架构相对更复杂,一般不是很推荐。

>>>import redis

>>>r = redis.Redis(host='localhost',port=6379,db=0)

>>>r.set('myname','m978718484')

True

>>>r.get('myname')

'm978718484'

>>>r['myname']

'shuai'

>>>r.keys()

['myname']

>>>r.dbsize() #当前数据库包含多少条数据

1L

>>>r.delete('myname')

1

>>>r.save() #执行“检查点” *** 作,将数据写回磁盘。保存时阻塞

True

>>>r.get('myname')

>>>r.flushdb()#清空r中的所有数据

True>>>import redis

>>>r = redis.Redis(host='localhost',port=6379,db=0)

>>>r.set('myname','m978718484')

True

>>>r.get('myname')

'm978718484'

>>>r['myname']

'shuai'

>>>r.keys()

['myname']

>>>r.dbsize() #当前数据库包含多少条数据

1L

>>>r.delete('myname')

1

>>>r.save() #执行“检查点” *** 作,将数据写回磁盘。保存时阻塞

True

>>>r.get('myname')

>>>r.flushdb()#清空r中的所有数据

True


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6767947.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存