ctrl+c:退出
[root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis/bin/
原来没有key1
incr +1
decr -1
incr key1 等于1
- Redis的持久化方案
Redis的所有数据都是保存到内存中的。
Rdb:快照形式,定期把内存中当前时刻的数据保存到磁盘。Redis默认支持的持久化方案。
aof形式:append only file。把所有对redis数据库操作的命令,增删改操作的命令。保存到文件中。数据库恢复时把所有的命令执行一遍即可。
集群:为了增加内存,存数据
集群之间相互连接;客户端只要连接到任意一个集群点就行
集群之间存储的数据不同
为了保证高可用,每个节点加一个备份机
加载文件只能配置一个
代码模块
为了不影响代码业务逻辑要在缓存中加入 try catch
在抛出异常内写缓存代码
try{
}catch(Exception e){
}
hget:获取的时候要key、field一块写
@Override
public List<TbContent> getContentList(long cid) {
//查询缓存(获取缓存数据)
try {
String json = jedisClient.hget(CONTENT_KEY, cid + "");
//判断json是否为空
if (StringUtils.isNotBlank(json)) {
//把json转换成list
List<TbContent> list = JsonUtils.jsonToList(json, TbContent.class);
return list;
}
} catch (Exception e) {
e.printStackTrace();
}
//根据cid查询内容列表
TbContentExample example = new TbContentExample();
//设置查询条件
Criteria criteria = example.createCriteria();
criteria.andCategoryIdEqualTo(cid);
//执行查询
List<TbContent> list = contentMapper.selectByExample(example);
//向缓存中添加数据
try {
jedisClient.hset(CONTENT_KEY, cid + "", JsonUtils.objectToJson(list));
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
把list集合变成一个json串
JsonUtils.objectToJson(list);
对内容信息做增删改操作后只需要把对应缓存删除即可。
可以根据cid删除
删除cid
/*
* redis缓存同步
*/
private void redisSync(Long categoryId) {
//删除对应field缓存即可
jedisClient.hdel(CONTENT_LIST,categoryId + "");
}