redis中存取map时候记录

在写redis工具类中存取map时候,一直写不对,查找资料是要序列化和反序列化,是和存取对象一样的,同一个序列化,但是在使用的时候一直出错,提示类型不对,后来问一个老哥。他用我的代码就能跑出来,我自己缺一直报错,很奇怪,最后发现我自己完全搞混了redis的数据类型的概念。靠。真是无语自己,我要求存一个map类型的,我先在redis客户端手动添加一个集合map  存值为1.w,随便瞎存的,然后用我写的方法可劲去查询,一直报类型错误

                    //读Map

        public static  Map GetMap(String key) {
              Jedis jedis = null;
              Map obj = null;
              try {
             jedis = getJedis();
              byte[] byt=jedis.get(key.getBytes());
              Map map=(Map) unserizlize(byt);
              return map;
              }finally {
//方法归还
        releaseResource(jedis);
}

              }

后来查到有直接可以读取map值得方法,是redis自带的hgetAll(),就有用自带方法去测试

public static void main(String[] args) {
       Jedis jedis = null;
       try {
       jedis = getJedis();
    Map<String, String> map2 =  jedis.hgetAll("keyMap");
  System.out.println(map2);
} finally {
  releaseResource(jedis);

  }

发现还是拿不到,报空指针异常,很奇怪,我去redis客户端再三检查 ,是有值得,名字也没有问题,但是一直就是报错空的,md,老子值呢,然后再去网上找资料,发现自己手动在客户端添加的不是一个map类型的,是一个集合的,曹。能查出来就够就怪了,自己的理解概念完全错了。set是集合的,map是哈希的,非要把map定义集合,能不错吗,,,,赶紧去好好看看redis的五大数据类型的概念,好好理解下,真的是,被自己蠢哭!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值