当前位置: 首页 > 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://wiki.neutronadmin.com/news/250089/

相关文章:

  • 怎么在另外一台电脑的浏览器打开自己做的网站地址栏输入什么qq上传空间wordpress
  • 素材网站视频网站建设话语
  • 广州制作网站公司电话网站建设和运行费用
  • 帮做动态头像的网站番禺本地网站
  • 网站开发一定找前端么聊城高新区建设局网站
  • 一个空间放2个网站wordpress填写
  • 网站开发逻辑房屋装修效果图制作
  • 长沙seo公司网站优化网站缓存优化怎么做
  • 沈阳个人网站制作做网站的硬件和软件环境
  • 江西省水利水电建设集团招标网站asp个人网站怎么建设
  • 做网站采集禅城技术支持骏域网站建设
  • 台州网站建设推广公司手机网站seo怎么做
  • 如何进入网站管理页面洞泾做网站公司
  • 网站主体负责人是法人那些网站容易做淘宝推广
  • 导游网站如何建设的建设企业网站官网u盾登录
  • wordpress源码网站主题天津品牌网站建设哪个好
  • 在什么地方可以接到做网站的活网站设计和美工一样吗
  • 郑州网站建设冫汉狮网络湖南网站设计公司
  • 设计自己的网站中材建设有限公司招标网站
  • 160 国际英文网站网站开发广告语大全
  • 东莞网络建站裕华区建设局网站
  • wordpress+论坛偷笑旺道seo软件
  • 做外贸需关注的网站视频网站怎么做
  • 怎样可以开网站即墨哪里有做网站的
  • 满足seo需求的网站怎样做品牌推广网站
  • 建设电子商务网站的启示国外优秀app设计网站有哪些
  • 吉林网站建设吉林软文公司代写
  • h5用什么网站来做wordpress 数据库配置错误
  • 网站分享链接怎么做的宁夏建设厅网站官网
  • 五合一小程序网站帝国建设网站