在今日,发现有部分功能因SQL语句查询过于缓慢,并且无法在进行优化(由于部分原因导致SQL固定,数据库结构无法改变,外键已经无法设置),但是在我尽力压缩时间后每一次的查询也是有7-8s的时间,这是绝对无法接受的,因此我想到使用Redis进行远程读写来实现一个伪缓存的操作。

在上篇文章中我已经讲过,Redis是基于内存的NOSQL数据库,拥有每秒十万级别的读写能力,因此用它来实现非常完美,具体步骤如下:

1.安装redis数据库到虚拟机(服务器)中,详情见上篇文章

2.在项目中进行远程调用:

①.笔者比较喜欢使用maven作为包依赖,所以在这里直接讲解maven的做法:

首先导包

<!--redis连接所需--><!--redis-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency><!-- config redis data and client jar-->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>2.0.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.4.2</version>
</dependency><!--JSON转化工具-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.58</version>
</dependency><!--end-->

这里的包除了最后一个,其它都是必须的!!!

②.创建redis-context.xml配置文件,配置连接池,连接工厂,kv序列化器以及redis模板对象(PS:这里可以不用redis模板对象也可以,但是就和我们的SpringCloud一样,不可能上手直接Feign来远程调用,一般都是用模板调用来学习)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"><!-- 连接池配置 -->
<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"><!-- 最大空闲数 -->
<property name="maxIdle" value="50"></property><!-- 最大连接数 -->
<property name="maxTotal" value="100"></property><!-- 最大等待时间 -->
<property name="maxWaitMillis" value="20000"></property>
</bean><!-- 配置连接工厂 -->
<bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<property name="hostName" value="192.168.3.139"></property>
<property name="port" value="6379"></property>
<property name="password" value="root"></property>
<property name="poolConfig" ref="poolConfig"></property>
</bean><!-- 配置 key 和 value 的序列化器 -->
<bean id="jdkSerializationRedisSerializer" class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"/>
<bean id="stringRedisSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer"/><!-- 配置Redis模板对象 -->
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="connectionFactory"></property>
<property name="keySerializer" ref="stringRedisSerializer"></property>
<property name="valueSerializer" ref="jdkSerializationRedisSerializer"></property>
</bean>
</beans>

这里的一些基本信息是外置比较好,当然,内置也行。

③.在spring的核心xml配置文件中进行导入:

<import resource="classpath:redis-context.xml"></import>

④.测试:

@Autowiredprivate RedisTemplate redisTemplate;

@RequestMapping(value = "redis",method = RequestMethod.GET)public void redis(){
System.out.println("成功进入到redis末班中");redisTemplate.opsForValue().set("hello","world");
System.out.println("redis设值语句执行成功!");
}

成功输出语句即完成成功!

如果失败的话大概率是你redis的服务没有开启或者你的防火墙设置外部不允许连接,鹏大道这种问题请查看笔者的上一篇文章,处理方法有写过,比较简单,都是操作redis目录中的redis.conf配置文件

jedis操作set_使用Redis来进行缓存操作相关推荐

  1. jedis操作set_Jedis对redis的五大类型操作代码详解

    本篇主要阐述Jedis对redis的五大类型的操作:字符串.列表.散列.集合.有序集合. JedisUtil 这里的测试用例采用junit4进行运行,准备代码如下: private static fi ...

  2. SpringBoot2.X 整合Redis实现简单缓存操作

    文章包含项目全部文件代码: pom文件 application.propertis 配置文件 SpringBoot启动类 Redis配置类 Controller测试类 一.pom文件 web依赖,非必 ...

  3. php redis set集合操作,php对redis的set(集合)操作

    <?phprequire ('redistest.php');/*** Class setcache*集合类型的常用操作是向集合中加入或删除元素.判断某个元素是否存在等,由于集合类型在Redis ...

  4. Redis之sql缓存

    1.环境搭建 <!-- RedisTemplate --><dependency><groupId>org.springframework.boot</gro ...

  5. redis做mysql缓存的优点_面试官:如何保障数据库和redis缓存的一致性

    随着互联网的高速发展,使用互联网产品的人也越来越多,团队不可避免得也会面对越来越复杂的高并发业务场景(如下图),比如热点视频/文章的观看(读场景),热点视频/文章的评论,点赞等(写场景). 众所周知, ...

  6. jedis操作set_使用 JedisAPI 操作 Redis

    一 使用 JedisAPI 操作 Redis Jedis 集成了 redis 的一些命令操作,封装了对 redis 命令的 Java 客户端. 1 使用 Jedis 操作 Redis 单机版 1.1 ...

  7. Redis实现求交集操作结果缓存的设计方案

    Redis的集合操作 实话说,Redis提供的集合操作是我选择它成为内存数据库的一个主要理由,它弥补了传统关系型数据库在这方面带来的复杂度,使得只需要简单的一个命令就可以完成一个复杂SQL任务,并且交 ...

  8. jedis使用_Mybatis的二级缓存、使用Redis做二级缓存

    什么是二级缓存? 二级缓存和一级缓存的原理是一样的,第一次查询,会将数据放入缓存中,然后第二次查询则会直接去缓存中取.但是一级缓存是基于的sqlSession,而二级缓存是基于mapper文件的nam ...

  9. Java中使用Jedis连接Redis对Hash进行操作的常用命令

    场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re ...

最新文章

  1. 我酸了~腾讯员工平均月薪 7.6 万 | 每日趣闻
  2. 曼昆《经济学原理》(第五版)习题解答 第三章 相互依存性与贸易的好处
  3. Spring.Net 能为我们做点什么
  4. 当网页太多时,用锚点 以及超链接的使用
  5. 【51单片机快速入门指南】7:片上EEPROM
  6. 【ElasticSearch】ElasticSearch 中使用衰减函数来完美你的搜索结果
  7. Microsoft.Ink namespace
  8. greenplum数据导入到mysql,将数据从DB2数据库传输到greenplum数据库
  9. c int转字符串_零基础如何学好Python 之int 数字整型类型 定义int()范围大小转换...
  10. 不用花钱,让你百度网盘满速下载的神器!简单实用教程
  11. 小米8,全面屏手机判断是否显示虚拟键
  12. http状态404 vscode_HTTP常见状态码(404、400、500)等错误
  13. MySQL 删除大量数据
  14. 如何一次性改变word中的数字和字母的字体属性
  15. 现在机器翻译效果已经那么牛逼了!?
  16. 编译单个java文件
  17. 国际会议oral经验浅谈
  18. 女博士年薪156万入职华为!网友:实力演绎美貌与智慧并重!
  19. ipv6修改DNS服务-首选DNS服务器:240c::6666
  20. cool ! 3d plane !

热门文章

  1. 12 种经典亿级流量架构之资源隔离思想与方法论
  2. 如何看待李开复演讲称早期帮旷视拿了蚂蚁金服大量人脸数据,以及李开复、蚂蚁和旷视的澄清?该如何保护隐私?...
  3. Groovy全攻略--嵌入篇
  4. su 切换,提示:“密码不正确”;
  5. 编程体系结构(05):Java多线程并发
  6. Linux系统:Centos7搭建Redis单台和集群环境
  7. 数字调色盘【RGB和16位】
  8. 机器学习SVD【一】
  9. 应邀ITGeGe在线教育社区嵌入式基础开发讲师
  10. java线程间的协调