// 返回一个数据库查询结果集,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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)