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

张店区网站建设特点有哪些 谢谢网站推广营销活动

张店区网站建设特点有哪些 谢谢,网站推广营销活动,如何制作动漫小短片,做字体特效的网站说到redis大家都不陌生#xff0c;其中包括#xff1a;共有16个数据库#xff0c;默认为第0个数据库#xff1b;数据以key-value键值的形式存储#xff1b;数据类型包括String、List、Hash、Set等#xff0c;其中最常用的是字符串#xff1b;是单线程的、基于内存的其中包括共有16个数据库默认为第0个数据库数据以key-value键值的形式存储数据类型包括String、List、Hash、Set等其中最常用的是字符串是单线程的、基于内存的主要受内存和网络带宽的影响… 这些都是基于Redis的基础理论知识储备。接下来我会通过开发中的StringRedisTemplate对象作为切入点说一说Redis在开发中的那些事儿。 文章目录 1. jedis还是lettuce2. 字符串缓存应用场景1基础缓存应用场景2重复提交验证 3. List缓存应用场景高并发场景 1. jedis还是lettuce 两者都是redis的客户端对redis操作进行了封装。其中lettuce是内部使用netty进行网络通信性能很强jedis已经停止更新了。lettuce相对于jedis在性能方面更为出色jedis在单个线程中是线程安全的功能上更加丰富支持的数据类型更多。无论Springboot2.0以后默认使用lettuce作为操作redis的客户端选择jedis还是lettuce都需要根据具体的业务需求和场景进行评估和测试以确定最适合的工具库。两者的分别使用如下 pom依赖 jedis !-- redis -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactIdexclusionsexclusiongroupIdio.lettuce/groupIdartifactIdlettuce-core/artifactId/exclusion/exclusions /dependency dependencygroupIdredis.clients/groupIdartifactIdjedis/artifactId /dependencylettuce !-- redis -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId /dependencyyaml配置 jedis spring:redis:host: localhostpassword:port: 6379timeout: 10s # 连接超时时间jedis:pool:max-active: 1000 # 连接池最大连接数使用负值表示没有限制max-wait: -1 # 连接池最大阻塞等待时间使用负值表示没有限制max-idle: 10 # 连接池中的最大空闲连接min-idle: 5 # 连接池中的最小空闲连接lettuce spring:redis:host: localhostpassword:port: 6379timeout: 10s # 连接超时时间lettuce:pool:max-active: 1000 # 连接池最大连接数使用负值表示没有限制max-wait: -1 # 连接池最大阻塞等待时间使用负值表示没有限制max-idle: 10 # 连接池中的最大空闲连接min-idle: 5 # 连接池中的最小空闲连接2. 字符串缓存 应用场景1基础缓存 对于redis有90%的使用场景都是基于String作为基础缓存使用的对于经常使用的并且修改频率较低的数据存储在Redis缓存中可以大大提高系统性能和响应速度避免频繁地从数据库或其他后端服务读取数据。对象、集合等数据也可以通JSON序列化成字符串进行存储大大提升了系统的并发性能节省系统资源的消耗。 存字符串、对象、集合到缓存中redisTemplate.opsForValue().set(key, value) //存普通字符串redisTemplate.opsForValue().set(testKey, 123456);//存某对象Person person getPerson(); //TODO 获取到某个实例对象redisTemplate.opsForValue().set(testObj, JSON.toJSONString(person));//存某集合ListPerson persons getPersonList(); //TODO 获取到某个实例集合redisTemplate.opsForValue().set(testList, JSON.toJSONString(persons));存入缓存中有时效性超时之后缓存自动删除redisTemplate.opsForValue().set(key, value, time) //设置登录token30分钟有效第3个参数支持天、小时、分钟、秒等redisTemplate.opsForValue().set(token, 123456, Duration.ofMinutes(30));从缓存中读取数据数据为字符串可按实际存入的值进行序列化redisTemplate.opsForValue().get(key) //从缓存中获取某对象String s1 redisTemplate.opsForValue().get(testObj);Person person JSON.parseObject(s1, Person.class);//从缓存中获取某集合String s2 redisTemplate.opsForValue().get(testList);ListPerson persons JSON.parseArray(s2, Person.class);获取缓存剩余时间redisTemplate.getExpire(key) //返回值为long值单位是秒如果是-1时代表的是永久保存Long expire redisTemplate.getExpire(testKey);重置缓存时间redisTemplate.expire(key, time, timeUnit) //重置时间为2天redisTemplate.expire(testKey, 2, TimeUnit.DAYS);判断是否存在redisTemplate.hasKey(key) Boolean b redisTemplate.hasKey(testKey);模糊匹配获取所有的key值redisTemplate.keys(“*”); //获取所有的key值SetString keys redisTemplate.keys(*);//获取所有的testKey*模糊的key值SetString keys redisTemplate.keys(testKey*);删除缓存redisTemplate.delete(key) redisTemplate.delete(testKey);只是列了部分还有multiSet、getRange、increment等方法都很实用 应用场景2重复提交验证 相同请求短时间内请求多次过滤尤其是用于重要表单信息提交、秒杀请求的应用场景。在每次接收到请求时生成一个唯一的请求标识例如可以使用请求的URL和参数进行哈希计算在Redis中使用请求标识作为Key将其存入到缓存中设置一个合适的时间自动清理缓存中的过期请求标识避免占用过多内存。这样就可以实现用Redis有效地进行接口重复请求的验证。 以下为请求重复验证工具类实例代码 Component public class RequestValidator {Autowiredprivate StringRedisTemplate redisTemplate;/*** 重复请求方法* param requestId 请求标识* param validSecond 有效时间单位秒* return true重复 / false不重复*/public boolean isDuplicateRequest(String requestId, Long validSecond) {String s redisTemplate.opsForValue().get(requestId);//缓存中取值不为空证明是重复请求if (StringUtils.isNotEmpty(s)) {return true;}//缓存中取值为空证明非重复请求把请求标识放入到缓存中redisTemplate.opsForValue().set(requestId, DUPLICATE_REQUEST, Duration.ofSeconds(validSecond));return false;} }3. List缓存 应用场景高并发场景 opsForList提供了一组简单而直观的方法来操作列表类型的数据如leftPushAll、rightPushAll等这使得批量存储变得非常方便并且代码更易读可以很好地支持高并发的场景。Redis的列表是按照插入的顺序进行存储的利用leftPushAll或rightPushAll方法进行批量存储时元素会按照给定的顺序依次插入到列表中可以确保存储的顺序是可控的。虽然opsForList提供了方便的批量存储操作但在实际使用时仍需考虑内存消耗、网络传输等因素存储数据过大如果来不及消费就会造成系统内存溢出导致服务器崩溃存在数据丢失的风险。 ✈ 具体怎么使用在之前的文章中有介绍在这里Java高并发之Redis批量提交数据库
http://www.zqtcl.cn/news/627982/

相关文章:

  • 哔哩哔哩免费网站观看网站制作合同书
  • 自流井移动网站建设建设网站的一般步骤
  • 手机导航网站模板上海低价网站建设
  • 如何开公司注册需要多少钱东莞网站推广优化网上推广公司
  • 新闻门户网站制作教育培训网站开发
  • 网站建设公司哪个好一点最近一周的热点新闻
  • 做最优秀的自己的视频网站佛山搜索引擎优化
  • 六盘水市网站建设免费封面设计在线制作生成
  • 北京快速建站制作公司wordpress wpoptions
  • iis如何建立网站门源县住房和城乡建设局网站
  • 装修素材图片都从什么网站找铁门关网站建设
  • 网站服务器环境不支持mysql数据库免费商标图案logo
  • 以什么主题做网站好wordpress怎么设置404
  • 为什么手机进网站乱码网络营销工具的特点
  • DW怎么做网站下拉菜单网站建设外包网站
  • 手机做兼职的网站设计公司注册记账代理公司
  • 如何在vs做网站建筑工程电影网
  • 甘肃网站开发网站建设自己在家接单
  • 龙岗网站制作资讯福田区龙岗区发布通告
  • 百度如何快速收录网站嘉兴手机建站模板
  • 服务注册中心有哪些给你一个网站你如何做优化
  • 我做网站如何分流客户openwrt 做视频网站
  • 徐州微信网站建设建设工程项目
  • 便宜网站建设公司envision wordpress
  • 网站怎么做百度快照logo网站域名做固定资产怎么处理
  • 2003 iis网站发布工会网站建设管理工作总结
  • 商城网站大概多少钱长沙网站设计公司推荐
  • 海南省交通建设局网站首页做网站开发一般用什么语言
  • 个人备案网站沭阳哪里可以做网站
  • 环球资源网站什么时候做的搜索引擎优化名词解释