redis hset使用

redis hset使用

首先我来说一下场景:

原来是程序是这样的,在网站上面有一个网友互动的聊天平台  可以发送聊天记录,然后把这些记录都存储到数据库中,初始化的时候从数据库取出来存储到一个static map里面,然后页面发送消息的时候更新这个map以及数据库,每秒取一次,取得是map中的数据。

现在我需要把这个map缓存机制换为redis

//判断redis中是否有这个map redisUtil见前篇
 if (redisutil.HASH.hlen("ctl:sub_id:" + sub_id) > 0L) {
          cb.setIndex_num((int)redisutil.HASH.hlen("ctl:sub_id:" + sub_id));
        }
//把插元素到map里面 redisutil类这里三个参数都是byte[]
        redisutil.HASH.hset("ctl:sub_id:" + sub_id, cb.getChat_id(),SerializableUtil.serialize(cb));

//获取数据的时候



 if ((is_t_audit == 1) && ((int)redisutil.HASH.hlen("atl:sub_id:" + sub_id) > 0))
      {
        //前面是以参数byte[]形式插入的 但是这里可以用string的方式取出来
        Map amap = redisutil.HASH.hgetAll("atl:sub_id:" + sub_id);
        for (String s : amap.keySet()) {
        //这里需要返回byte[]那么参数要为byte[]
          byte []temp= redisutil.HASH.hget(("atl:sub_id:" +                        sub_id).getBytes(),s.getBytes());
          ChatBean cb = (ChatBean)SerializableUtil.deserialize(temp);
          tL.add(cb);
        }
      }


你可能感兴趣的:(redis hset使用)