首页 > 数据库 >redis注意点记录

redis注意点记录

时间:2023-01-31 01:22:04浏览次数:40  
标签:序列化 HashMap 记录 redis fieldValue 注意 KEY opsForHash stringRedisTemplate

1、stringRedisTemplate  它的key和Value的序列化方式默认就是String类型

2、stringRedisTemplate  操作Hash时:

  2.1 添加数据 ,在实体转换为HashMap需要将对象字段的值转为String( 使用StringRedisTemplateredis需要转换成的map的各个字段都是String类型),eg:
Map<String, Object> userMap = BeanUtil.beanToMap(userDTO,new HashMap<>(),
        CopyOptions.create()
                .setIgnoreNullValue(true)
                .setFieldValueEditor((fieldName,fieldValue)->fieldValue.toString()));
stringRedisTemplate.opsForHash().putAll(LOGIN_USER_KEY + token,userMap);
  
    2.1.1 Hutool工具包的BeanUtil的beanToMap方法------空指针的问题  https://i.cnblogs.com/posts/edit;postId=17077647  修改为:
Map<String, Object> map = BeanUtil.beanToMap(dbShop,new HashMap<>(),
        CopyOptions.create()
                .setIgnoreNullValue(true)
                .setFieldValueEditor((fieldName,fieldValue) -> {
                            if (fieldValue == null){
                                fieldValue = "0";
                            }else {
                                fieldValue = fieldValue.toString();
                            }
                            return fieldValue;
                        }));
stringRedisTemplate.opsForHash().putAll(CACHE_SHOP_KEY + id, map);
  2.2 获取数据,
    2.2.1使用entries获取hashMap 的所有键值对  
Map<Object, Object> userMap = stringRedisTemplate.opsForHash().entries(RedisConstants.LOGIN_USER_KEY + token);
    2.2.2使用entries获取hashMap 的一个key  的键值对
Object o = stringRedisTemplate.opsForHash().get(CACHE_SHOP_KEY + id, "name");

3、stringRedisTemplate  操作string对应的实体对象时,需要转换成json,序列化与反序列化

标签:序列化,HashMap,记录,redis,fieldValue,注意,KEY,opsForHash,stringRedisTemplate
From: https://www.cnblogs.com/zxk-logs/p/17077647.html

相关文章

  • 使用 vue-pdf 踩坑记录
    嵌入小程序里的h5里有一个查看pdf的功能,在h5里可以正常打开pdf,但是在小程序的webview里却打不开。为了解决这个问题踩了好多坑......
  • Redis缓存基础知识(二)
    一、Redis缓存常见问题1.缓存穿透:指访问一个缓存和数据库中都不存在的key,由于这个key在缓存中不存在,则会到数据库中查询,数据库中也不存在该key,无法将数据添加到缓存中,所以......
  • Redis的设计与实现(2)-链表
    链表在Redis中的应用非常广泛,比如列表键的底层实现之一就是链表:当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis就会使用......
  • 图解redis的5种数据类型底层原理
    redis的5种数据类型以及其底层实现redis是KV(key-valuepair)存储,不管是K还是V,底层都是对象(object组成)的,其中K是一个字符串对象(stringobject),V分别有我们常听说的5种......
  • Redis缓存的主要异常及解决方案
    作者:京东物流陈昌浩1导读Redis是当前最流行的NoSQL数据库。Redis主要用来做缓存使用,在提高数据查询效率、保护数据库等方面起到了关键性的作用,很大程度上提高系统的性能......
  • Ubuntu 22.04.1 安装 Redis 7.0.8
    Ubuntu22.04.1安装Redis7.0.8 1、获取Redis安装文件curl-fsSLhttps://packages.redis.io/gpg|sudogpg--dearmor-o/usr/share/keyrings/redis-archive-......
  • windows版redis安装教程
    ***windows版redis安装教程***​​redis安装地址​​下载好redis压缩包后我们将压缩包解压到本地硬盘中,这里我将压缩包解压到D盘中并创建了一个文件叫Redis解压好后打开......
  • CF1787 记录
    应试水平/应试代码美观程度下降太多了。\(\rm{SB.}\)下面是VP过的题。ExponentialEquation发现\(x,y\)之一为偶数时一定有\(y^xx+x^yy\)为偶数,而\(y^xx+x^yy=n......
  • 塔吉特Target Domestic EDI项目实施注意事项及解决方案
    塔吉特Target与供应商传输的是X12标准报文,业务类型包含850(采购订单)、860(订单变更)、864(文本消息)、856(发货通知)和810(发票),供应商使用知行EDI系统自动化传输、翻译,实现X12报文......
  • 随笔(十五)『SpringBoot 整合 Redis』
    一、添加依赖<!--redis启动器--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>......