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

笋岗网站建设wordpress安装幻灯片

笋岗网站建设,wordpress安装幻灯片,电子书网站模板,评论回复网站怎么做redis是最常用的缓存数据库#xff0c;常用于存储用户登录token、临时数据、定时相关数据等。redis是单线程的#xff0c;所以redis的操作是原子性的#xff0c;这样可以保证不会出现并发问题。redis基于内存#xff0c;速度非常快#xff0c;据测试#xff0c;redis读的…redis是最常用的缓存数据库常用于存储用户登录token、临时数据、定时相关数据等。redis是单线程的所以redis的操作是原子性的这样可以保证不会出现并发问题。redis基于内存速度非常快据测试redis读的速度是110000次/s,写的速度是81000次/s本节介绍SpringBoot引入redis以及使用RedisTemplate来操作redis数据。采用SpringBoot 2.1.9.RELEASE对应示例代码在https://github.com/laolunsi/spring-boot-examples一、A Simple Demo-使用SpringBoot连接redismaven:dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId /dependencyyml:server:port: 8867 spring:redis:host: localhostport: 6379#password: database: 6测试类SpringBootTest RunWith(SpringRunner.class) public class RedisTest {Autowiredprivate RedisTemplate redisTemplate;Testpublic void testRedis() {String key hello;redisTemplate.opsForValue().set(hello, 你好);String res (String) redisTemplate.opsForValue().get(key);System.out.println(res);} }执行结果看一下redis这里存在一个问题默认的存储方式导致key在redis-manager里面显示出来是乱码的并且存储结果是二进制了。这样不利用我们查看redis里面的数据。我们需要自定义redis存储的序列化规则。二、解决RedisTemplate默认序列化的问题完善一下maven:dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId /dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope /dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId /dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId /dependency定义RedisConfig类/*** redis配置* 主要是配置Redis的序列化规则替换默认的jdkSerializer* key的序列化规则用StringRedisSerializer* value的序列化规则用Jackson2JsonRedisSerializer*/ Configuration public class RedisConfig {Beanpublic RedisTemplateObject, Object redisTemplate(RedisConnectionFactory connectionFactory) {RedisTemplateObject, Object redisTemplate new RedisTemplate();redisTemplate.setConnectionFactory(connectionFactory);// 使用Jackson2JsonRedisSerialize替换默认序列化Jackson2JsonRedisSerializer jackson2JsonRedisSerializer new Jackson2JsonRedisSerializer(Object.class);ObjectMapper objectMapper new ObjectMapper();objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(objectMapper);// 设置key和value的序列化规则redisTemplate.setKeySerializer(new StringRedisSerializer());redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);redisTemplate.setHashKeySerializer(new StringRedisSerializer());redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);redisTemplate.afterPropertiesSet();return redisTemplate;} }删除之前的key重新执行一下test方法下面来演示一下SpringBoot使用RedisTemplate进行redis数据的操作三、基于SpringBoot的redis操作——key/list/hashRedisTemplate内置redis操作如下这里主要展示value/hash/list三种用法3.1 RedisTemplate.opsForValue Testpublic void testKeyOps() {// 测试redis操作key-value形式SetString keySet new HashSet();String key1 name;keySet.add(key1);// 存储简单的key-value并设置过期时间redisTemplate.opsForValue().set(key1, eknown, 1, TimeUnit.MINUTES);String key2 token:user1;String key3 token:user2;keySet.add(key2);keySet.add(key3);//redisTemplate.opsForValue().set(key2, {name:eknown}, role:admin);redisTemplate.opsForValue().set(key3, {name:test}, role:test);// 根据key的集合获取多个valueListString valueList redisTemplate.opsForValue().multiGet(keySet);for (String value : valueList) {System.out.println(value);}}执行结果redis中的数据redis中的key显示出了一个层级关系这个小技巧对于实际项目有个非常好的作用通过prefix:suffix这样的形式可以将redis中存储的数据分出层级。3.2 RedisTemplate.opsForHash清空该database下的数据测试redisTemplate.opsForHash Testpublic void testHashOps() {String key hash;// 单次往hash中存放一个数据redisTemplate.opsForHash().put(key, 1, 你好);MapString, Object map new HashMap();map.put(2, hello);map.put(3a, china12);// 一次性向hash中存放一个mapredisTemplate.opsForHash().putAll(key, map);// 获取hash下的所有key和valueMapString, Object resultMap redisTemplate.opsForHash().entries(key);for (String hashKey : resultMap.keySet()) {System.out.println(hashKey : resultMap.get(hashKey));}}执行结果redis:3.3 RedisTemplate.opsForList Testpublic void testListOps() {String listKey list;redisTemplate.opsForList().leftPush(listKey, first value); // 从list最左边插入数据redisTemplate.opsForList().leftPush(listKey, second value but left);redisTemplate.opsForList().rightPush(listKey, 3); // 从list最右边插入数据ListObject list new ArrayList();list.add(hello);list.add(http://www.eknown.cn);list.add(23344);list.add(false);redisTemplate.opsForList().rightPushAll(listKey, list); // 从list右边批量插入数据long size redisTemplate.opsForList().size(listKey);if (size 0) {for (int i 0; i size -1 ; i) {// 从list最左边开始读取list中的数据注意pop会导致出栈也就是数据被取出来了redis中就没有这个值了// 此处我们读取size-1条数据仅留下最后一条数据System.out.println(i : redisTemplate.opsForList().leftPop(listKey).toString());}}}执行上面的脚本注意在最后的读取list数据代码前面加一个断点此时redis中是这样的放开断点程序继续执行控制台如下注意此时redis中仅剩余最后一条数据这是由于pop的问题list中的数据被读取并删除了好了这一节主要讲了SpringBoot引入redis以及使用redis的一些基本操作和相关技巧在此基础上我们可以让我们的项目变得更加快速、灵活交流学习我的个人网站http://www.eknown.cnGit仓库地址https://github.com/laolunsi另外也欢迎大家关注我的公众号猿生物语一起学习Java/SpringBoot/SpringCloud技术。
http://www.yutouwan.com/news/250089/

相关文章:

  • 网站开发要什么软件有哪些唐山seo网络推广
  • 手机有些网站打不开怎么解决asp.net 建立网站吗
  • 网站后台管理怎么进怎么做网站建设的ppt
  • 广西网站设计服务易思espcms企业网站管理系统
  • 网站开发需要客户做什么网站制作营销型
  • 电子商务网站建设与管理期末试题兴义市城乡建设局网站
  • 怎么做淘宝联盟网站制作纹身网站设计
  • wp做网站难吗建网站签合同
  • 找网站做网站做网站横琴新区公共建设局网站
  • 怎么查网站备案的公司班服定制网站
  • 网易免费企业邮箱入口搜索引擎营销优化策略有哪些
  • 网站建设明细价单zencart网站
  • 建设银行安徽 招聘网站潍坊大型网站建设平台
  • 古董专家官方网站微信消防设备网站建设
  • 甘肃平凉建设局网站php学生管理系统源码免费
  • 用v9做的网站上传服务器网站建设江门
  • 白沙网站建设中文wordpress模板
  • 网站建设捌金手指花总二免费网站看v片在线第一次做
  • 建设网站要学编程吗网站建设的市场容量
  • 辽宁专业网站建设网站编辑是网页制作么
  • 做电信宽带合适做网站吗网站建设 技术架构
  • 网站构成的作用是什么电子商务网站开发策划
  • 常青花园做网站的公司网站建设龙华
  • 怎么做wep网站网站开发与设计培训的就业前景
  • 厦门专业做网站 厦门做网站的公司 厦门做服饰网站网站广告设计怎么做
  • 自己免费做网站有什么用开源公司网站
  • 网站怎么做页面解析跳转河南网站建设问一问公司
  • 这个百度的网站怎么做的网站免费做链接
  • seo网站有优化培训吗金华专业网站制作
  • 简洁高端网站模板psdwordpress首页调用最新文章