当前位置: 首页 > news >正文

大连网站建设选高和科技seo价格是多少

大连网站建设选高和科技,seo价格是多少,滕州网站建设滕州,东阿网站制作Redis的数据类型Hash使用场景 常见面试题#xff1a;redis在你们项目中是怎么用的#xff0c;除了String数据类型还使用什么数据类型#xff1f; 怎么保证缓存和数据一致性等问题… Hash模型使用场景 知识回顾#xff1a; redisTemplate.opsForHash() 方法是 Redis 的 …Redis的数据类型Hash使用场景 常见面试题redis在你们项目中是怎么用的除了String数据类型还使用什么数据类型 怎么保证缓存和数据一致性等问题… Hash模型使用场景 知识回顾 redisTemplate.opsForHash() 方法是 Redis 的 Hash哈希数据结构的操作模板方法。它返回一个 HashOperations 实例可以使用该实例执行对哈希数据结构的各种操作如添加、删除、获取元素、获取全部元素等。 使用 redisTemplate.opsForHash() 方法进行哈希操作的示例如下 // 添加元素到哈希 redisTemplate.opsForHash().put(myhash, key1, value1); redisTemplate.opsForHash().put(myhash, key2, value2);// 获取哈希中指定的元素 String value1 (String) redisTemplate.opsForHash().get(myhash, key1);// 获取哈希中所有元素 MapObject, Object allEntries redisTemplate.opsForHash().entries(myhash);// 删除哈希中指定的元素 redisTemplate.opsForHash().delete(myhash, key1);// 判断哈希中是否存在指定的元素 boolean exist redisTemplate.opsForHash().hasKey(myhash, key1);场景使用场景 1对象缓存 比如存储用户信息 一个字段对应多个属性 id:1 、name:老许 、 age:18 、 sex:0 、 hobby:java … 2、同一个用户在不同所属系统的待办个数统计 代码实现 应用场景一保存用户的信息 h:user_key_prefix account hkacount hvuser 引入依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency项目启动时候自动将数据库用户信息保存到redis中 package com.xx.xx.xx.config;import com.alibaba.fastjson2.JSON; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.core.StringRedisTemplate;import javax.annotation.PostConstruct; import java.util.List; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors;/*** author psd*/ Slf4j Configuration public class SysUserConfig {Autowiredprivate SysUserService sysUserService;Autowiredprivate StringRedisTemplate redisTemplate;Autowiredprivate RedisOperationUtils redisOperationUtils;PostConstructpublic void init() {// 查询所有的用户信息ListSysUserEntity userEntityList sysUserService.queryAllSysUser();ListString accountList userEntityList.stream().map(SysUserEntity::getAccount).collect(Collectors.toList());// 清除缓存中的数据 accountList.stream().forEach(account - redisTemplate.delete(redisOperationUtils.USER_KEY_PREFIX account));// 重新新增缓存中的数据userEntityList.stream().forEach(userEntity - {// 设置一个随机过期时间 4 ~ 8小时redisTemplate.opsForHash().put(redisOperationUtils.USER_KEY_PREFIX userEntity.getAccount(), userEntity.getAccount(),JSON.toJSONString(userEntity));redisTemplate.expire(redisOperationUtils.USER_KEY_PREFIX userEntity.getAccount(), 3600 redisOperationUtils.random.nextInt(4 * 3600),TimeUnit.SECONDS);});}} 配置类 Component public class RedisOperationUtils {/*** 用户信息redis中的key*/public final String USER_KEY_PREFIX rbac:user:;public final Random random new SecureRandom(); }项目中任意获取的可以 Testpublic void test03(){Object o redisTemplate.opsForHash().get(redisOperationUtils.USER_KEY_PREFIX Lin , Lin);SysUserEntity entity JSON.parseObject((String) o, SysUserEntity.class);System.out.println(entity entity);}可能存在疑问点 1、为啥没有用String类型 同样可以满足这个是考虑到有些字段可能会改动项目在初期阶段可能某些字段会修改添加新增包括删除 总和优先考虑Hash模型利于维护不用单个字段进行修改 删除等操作 2、如果数据有修改的情况下你是怎么保证数据类型一致性 先删除redis中的数据再写数据到mysql 再删除redis中数据 优点细节有以下几处 1、设置过期时间时候没有采用 每次new Random()而是放到一个工具类里面节约内存 2、使用Random random new SecureRandom(); 是安全的 3、采用随机过期时间随机性比较好 减少redis的内存使用 应用场景二保存用户的信息 h:phoneNum hktypeStr hvcount // h:phoneNum hktypeStr hvcount // 对应唯一标识手机号: 139xxxxxxxx hk:数据来源类型 hv:个数 Overridepublic void insertTask() {redisTemplate.opsForHash().put(redisOperationUtils.KEY_PREFIX 18900001111, xj, 10);redisTemplate.opsForHash().put(redisOperationUtils.KEY_PREFIX 18900001111, kd, 8);redisTemplate.opsForHash().put(redisOperationUtils.KEY_PREFIX 18900001111, yh, 6);redisTemplate.opsForHash().put(redisOperationUtils.KEY_PREFIX 15665440000, xj, 2);redisTemplate.opsForHash().put(redisOperationUtils.KEY_PREFIX 15665440000, kd, 3);redisTemplate.opsForHash().put(redisOperationUtils.KEY_PREFIX 15665440000, yh, 12);}再获取时候 // 获取的taskCountStr 注意是个字符串需要做类型转换封装成vo给前端用于渲染 具体业务具体分析String taskCountStr (String) redisTemplate.opsForHash().get(redisOperationUtils.KEY_PREFIX 153xxxxxxxx, taskEnum.getOwningSystemCode());喜欢我的文章的话点个阅读或者点个点赞是我编写博客的动力持续更新中
http://www.dnsts.com.cn/news/154436.html

相关文章:

  • 建设一个网站需要哪些费用免费的行情软件网站入口
  • 渭南网站建设公司电话公司门户网站的设计与实现
  • 网站建设的网站定位长沙建一个网站大概要多少钱
  • 团购网站 如何做推广手机怎样使用域名访问网站
  • 沈阳城市建设招生网站dw下载手机版
  • 嘉伟网络智能建站徐州英才招聘网
  • 网站内容建设整改工作投放广告赚钱平台有哪些
  • 网页设计作业之玩具商城网站哈尔滨行业网站
  • 手机网站微信咨询世界互联网峰会2022
  • 婴儿网站建设住栏目广州高端网站开发公司
  • 通过网站做国际贸易的成本简历网
  • 网站建设软文推广商城网站用html做
  • 什么网站可以做期刊封面专业做网站的页面设计
  • 网站建设公司海南番禺外贸网站建设
  • 网站后期维修问题网站开发需要多线程
  • 北京州网站建设公司制作小程序需要什么技术
  • 朝阳网站关键词优化网站开发工资高吗
  • 崇仁网站建设推广费用石家庄网站优化推广
  • 吉林市做网站的科技公司沈阳市建设工程项目管理中心
  • 亚马逊店铺网站建设费用个人作品网页设计
  • 做网站网络杭州网站制作工具
  • wordpress子 主题贵阳做网站优化
  • 手机网站建设制作教程视频教程wordpress插件直播
  • 南京做网站哪家最好广西建设厅考试网站
  • 建设部人才交流中心网站推广普通话奋进新征程ppt
  • 网站制作网站推广服务营销理论
  • 电商是干什么工作的长沙优化网站技巧
  • 河北住房与城乡建设部网站企业推广的成功
  • 外贸网站解决方案域名查询购买
  • 外贸网站推广做英语quiz的网站