沐风Cc 2018-12-03 05:56 采纳率: 100%
浏览 1938
已采纳

将 json数据 按照字符串的格式存到了 redis中,当我数据库做了增 删、改 ,该如何保 数据一致性呢

我在查询时 将 json数据(key为:user:01) 序列化并按照 字符串的格式存到了 redis中,当我做了 增、删、改之后,如何保证 键 user:01 数据的一致性呢? 还是说 我要重新覆盖该值?各位有什么好的解决方案吗

伪代码:

业务代码:
 List<Map> cList = rwDao.getAllRwHist3(paramsMap);
  jedis.setList("user:01",cList);

    底层源码:
     @Override
    public void setList(String key, List<?> list) {
        Jedis jedis = new Jedis("127.0.0.1",6379);
        try{
            if(list != null && !list.isEmpty()){
                jedis.set(key.getBytes(),SerializeUtil.serializeList(list));
            }else{
                jedis.set(key.getBytes(), "".getBytes());
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    @Override
    public List<?> getList(String key) {
        Jedis jedis = new Jedis("127.0.0.1",6379);
        if(jedis==null || !jedis.exists(key.getBytes())){
            return null;
        }
        byte[] data = jedis.get(key.getBytes());
        return SerializeUtil.unSerializeList(data);
    }

  • 写回答

3条回答 默认 最新

  • 小达哥的垃圾桶 2018-12-03 07:55
    关注

    1、要求性能:如果改动很少,只改了一个字段,可以考虑从reids拿出来后在指定的对象中进行修改,然后redis重新set这个新的值;同理增加就时list.add、删除就是list.remove。但是要注意index的变化哟
    2、不要求性能:直接查询后redis覆盖

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?