redis缓存技术(搭建及项目整合)

docker安装redis连接redis可视化工具Redis Desktop Manager+springboot项目使用Cache缓存+springboot项目整合 Redis 实现缓存 今天进一步学习了redis的相关知识,希望下面的博客可以给博友们带来帮助。 docker安装redis连接Redis Desktop Manager 启动docker (系统控制ctl:control) systemctl start docker 查找Docker Hub上的redis镜像 docker search redis 这里我们拉取官方的默认redis镜像 docker pu... 阅读详情

前言:此篇博客主要针对于刚学redis的同学,或者刚学完redis 的同学还不能独立搭建与项目整合参考使用

           (注:此篇只讲解redis的缓存部分,关于redis的主从复制、哨兵模式等等将在以后的博客中进行讲解)

本篇博客主要讲解

            (虚拟机环境搭建可参考:)

             1:redis的环境搭建

             2:redis整合项目

             3:一些软件的使用简介(Xshell)

             4:redis整合部分bugger分析

正文:

软件:

       linux-Redis:Redis 是一个高性能的key-value数据库,相对与MySQL优点在于数据存储在内存而不是硬盘,读取快

     下载地址:https://download.youkuaiyun.com/download/tolode/10900445

       Xshell:在windows系统中通过命令操作linux系统的工具,也可用于其他系统。页面清晰,在进行修改相关配置时,已注释和 未注释色彩分明,是个非常不错的工具 

      下载地址:https://download.youkuaiyun.com/download/tolode/10897759

一:在windows使用Xshell进行操作linux系统

                1.1:在linux系统的控制台查询当前端口号 ifconfig

                1.2 :根据查询到的端口号进行xshell连接 ssh ip

                         连接不上原因分析

                            1:端口错误、再次查看确定,

                            2:端口不同、两个系统进行互ping

                 1.3:上传redis文件到linux系统

                             快捷键:Ctrl+Alt+F
                             关闭弹出窗口,出现sftp:/root> 开始上传文件

                             可直接进行拖拽文件

                 1.4:对redis进行解压,编译安装

                        解压: tar xvf  redis-3.2.11.tar.gz

                        编译安装: make  && make install

                1.5:开启redis: redis-cli

                1.6:查询redis是否开启(端口号:默认6379):ps -ef|grep redis

                1.7:redis的一些操作命令

                          查询密码: config get requirepass

                          设置密码:config set requirepass root

                          密码验证:auth root   

                           删除一个key:del key

                           删除当前数据库中的所有key:flushdb

                           删除所有数据库中的key: flushall

二:Java项目整合Redis

                 

                     2.1:pom或者jar(jedis、spring-data-redis)

                                  <dependency>
                                          <groupId>redis.clients</groupId>
                                          <artifactId>jedis</artifactId>
                                           <version>2.8.1</version>
                                  </dependency>
                                  <dependency>
                                            <groupId>org.springframework.data</groupId>
                                            <artifactId>spring-data-redis</artifactId>
                                             <version>1.7.2.RELEASE</version>
                                             </dependency>
                                    <dependency>

                       2.2:  redis.properties

                                    redis.hostname=192.168.1.104
                                   redis.port=6379
                                   redis.password=root
                                   redis.timeout=2000
                                   redis.usePool=true
                                   redis.default.db=0    
                                   redis.maxTotal=600    
                                   redis.maxIdle=300  
                                   redis.timeBetweenEvictionRunsMillis=30000  
                                   redis.minEvictableIdleTimeMillis=30000    
                                   redis.testOnBorrow=false 
                                   redis.encode=utf-8  
                                   redis.expire=604800000  
                                   redis.unlock=false

                    2.3:application-reids.xml  

                           <?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"
                                   xmlns:aop="http://www.springframework.org/schema/aop" 
                                   xmlns:mvc="http://www.springframework.org/schema/mvc" 
                                   xmlns:tx="http://www.springframework.org/schema/tx"
                                   xmlns:cache="http://www.springframework.org/schema/cache"
                               xsi:schemaLocation="
                                    http://www.springframework.org/schema/cache 
                                    http://www.springframework.org/schema/cache/spring-cache.xsd 
                                    http://www.springframework.org/schema/beans 
                                    http://www.springframework.org/schema/beans/spring-beans-2.0.xsd 
                                    http://www.springframework.org/schema/context 
                                    http://www.springframework.org/schema/context/spring-context-4.0.xsd 
                                    http://www.springframework.org/schema/aop 
                                    http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
                                    http://www.springframework.org/schema/tx 
                                    http://www.springframework.org/schema/tx/spring-tx-4.0.xsd 
                                    http://www.springframework.org/schema/mvc 
                                    http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

                              <!-- 启用缓存注解功能,这个是必须的,否则注解不会生效,

                                       另外,该注解一定要声明在spring主配置文件中才会生效 -->    
                                 <cache:annotation-driven /> 
                                 <mvc:annotation-driven />
                                 <context:component-scan base-package="com.redis.*" />
                                 <context:property-placeholder location="classpath:config/redis.properties"/>
                            <!-- jedis 配置 -->  
                                 <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">  
                                         <property name="maxIdle" value="${redis.maxIdle}" />  
                                         <property name="testOnBorrow" value="${redis.testOnBorrow}" />  
                               </bean>  
  
                          <!-- redis服务器中心 -->  
                               <bean id="connectionFactory"  
                                     class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">  
                                    <property name="poolConfig" ref="poolConfig" />  
                                    <property name="port" value="${redis.port}" />  
                                    <property name="hostName" value="${redis.hostname}" />  
                                   <property name="password" value="${redis.password}" />   
                                   <property name="timeout" value="${redis.timeout}"></property>  
                             </bean>   
                             <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">  
                                   <property name="connectionFactory" ref="connectionFactory" />  
                                       <property name="keySerializer">  
                                       <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" />  
                                    </property>  
                                    <property name="valueSerializer">  
                                       <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" />  
                                    </property>  
                          </bean> 
                         <bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
                             <property name="caches">
                              <set>
                                <bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean">
                                      <property name="name" value="default"></property> 
                                </bean>
                                <bean class="com.redis.util.RedisCache">   
                                    <property name="redisTemplate" ref="redisTemplate" />   
                                    <property name="name" value="data"/>   
                             <!-- common名称要在类或方法的注解中使用 --> 
                               </bean>
                            </set>
                          </property>
                     </bean>
             </beans>

 三:进行单元测试

               3.1需要pom或jar 

                        <dependency>
                              <groupId>junit</groupId>
                              <artifactId>junit</artifactId>
                              <version>3.8.1</version>
                              <scope>test</scope>
                        </dependency>

               3.2:单元测试java代码

             @Test
              public void test1Jedis(){
                     //host链接云主机的外网地址
                     Jedis jedis=new Jedis("192.168.1.103", 6379);
                      jedis.auth("root");//加入这一段代码
                      String name=jedis.get("xiaomin");
                      jedis.set("age", "123");
                      System.out.println(age);
                      jedis.close();

              }

四:项目整合

       原本项目不变:主要在业务层进行缓存,我这里是使用注解的方式。

      原始项目框架:Spring+SpringMVC+JDBCTemplate

      package cn.redis.test;

      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.cache.annotation.Cacheable;
      import org.springframework.stereotype.Service;
      @Service
      public class ServiceInpl implements cn.redis.test.Service{
         @Autowired
         private Dao dao;

          @Override
          @Cacheable(value = "data" ,key="'name'") //这里的值data与配置文件中的data名称一致,key是自定义的键
          public User showUser(int i) {
               return dao.showUser(i);
          }  
      }

        项目下载地址:https://download.youkuaiyun.com/download/tolode/1089126

五:Bugger分析

     详情链接:https://blog.youkuaiyun.com/tolode/article/details/85857541

结束语:要是大家碰到什么问题,可以在下方进行留言,我们可以一起探讨

 

                    

     

 

          

 

缓存技术—redis Redis缓存 阅读详情

相关推荐

Redis多级缓存

官方网站: https://openresty.org/cn/

lzping_719的专栏 1164

Java 连接redis

一、Java 连接redis 1.1 maven引入jar <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> ...

书香水墨 352

【Redis】缓存

使用Redis作为Mysql缓存时,当Redis刚刚启动,或者Redis大批key失效之后,此时由于Redis自身相当于是空着的,没有什么缓存数据,那么Mysql就很可能直接被访问到,从而造成较大的问题因此就需要提前把热点数据备好,直接写入到Redis中,使Redis为Mysql搭建的“保护罩”尽快成型热点数据可以基于上文介绍过的统计方式生成,这份热点数据不用那么“精确”,只要能帮助Mysql低于大部分请求即可,随着程序运行,缓存的热点数据会逐步自动调整,来更一步适应当前情况。

2202_75555590的博客 920

Java 整合 Redis

主要介绍了Java整合Redis的两种方式以及对应案例

m0_53067943的博客 2765

Java领域缓存技术:Redis与Java的集成

在当今的软件开发中,缓存技术是提高系统性能和响应速度的关键手段之一。Redis作为一款高性能的内存数据库,以其丰富的数据结构、高效的读写性能和持久化功能,成为了缓存技术的首选。本文章的目的在于详细介绍如何在Java领域中实现Redis与Java的集成,涵盖从基础概念到实际项目应用的各个方面。范围包括Redis的核心概念、与Java集成的原理、具体的实现步骤、实际应用场景以及相关的工具和资源推荐。本文将按照以下结构进行组织:首先介绍背景知识,包括目的、预期读者和文档结构;

Java大师兄的博客 949

redis jar JDK1.6

基于redis缓存的session共享使用的jar包 tomcat-redis-session-manager-1.2 tomcat6 jdk6,包含整个

Redis缓存技术

文章目录NoSQL 产品(key-value)1、Redis功能介绍2、企业缓存产品介绍3、Redis使用场景介绍4、Redis安装部署5、Redis基本管理操作5.1 基础配置文件介绍:5.2 redis安全配置5.3在线查看和修改配置5.4 redis持久化(内存数据保存到硬盘)6、Redis数据类型6.1 介绍6.2 键的通用操作6.3 string6.4 hash类型6.5 LIST...

上善若水 2万+

spring-data-redis-1.6.0.RELEASE.jar + jedis-2.7.2.jar.rar

包含Java说明文件、配置代码、redis相应版本的Jar 1、代码片段要求的框架为:SpringMVC,但原理都是一样的,采用其他方式也可以。 2、RedisMng为简单封装的接口,不封装,直接采用redisTemplate也可以。

SpringBoot:缓存 + 搭建Redis缓存环境

SpringBoot搭建Redis缓存 注解版的 mybatis @CacheConfig @Cacheable @CachePut:既调用方法,又更新缓存数据;同步更新缓存 @CacheEvict:缓存清除 @Caching:定义复杂的缓存规则 CacheManager管理多个Cache组件的,对缓存的真正CRUD操作在Cache组件中,每一个缓存组件有自己唯一一个名字; 搭建Redis缓存环境及测试 RedisTemplate 自定义CacheManager

ChinaDragon10的博客 1591

spring-data-redis.jar包

spring和redis缓存工具类包

spring-data-redis-1.6.2.RELEASE.jar

spring-data-redis-1.6.2.RELEASE.jar,官网文档,免费提供,亲测可用

Redis缓存入门:Spring Boot项目整合实战

本文介绍了如何在Spring Boot项目中整合Redis缓存。首先通过Spring Initializr创建项目并添加Redis依赖,然后在配置文件中设置Redis连接信息。接着配置RedisTemplate并设置序列化器,以支持对象存储。通过创建User实体类和服务层实现缓存逻辑:优先从Redis获取数据,不存在时再从数据库查询并存入Redis。最后创建控制器测试缓存功能,并指出常见序列化问题的解决方法。该方案能有效提升系统性能,简化缓存实现过程。

fykam的博客 648

spring-data-redis-1.6.0.RELEASE最新稳定版(个人测试通过)

spring-data-redis-1.6.0.RELEASE最新稳定版(个人测试通过)

【Redis缓存】

相比于数据库而言,缓存的操作性能更高,缓存性能高的主要原因有以下几点:1、缓存一般都是key-value查询数据的,因为不像数据库一样还有查询的条件等因素,所以查询的性能一般会比数据库高;2、缓存的数据是存储在内存当中的,而数据库的数据是存储在磁盘当中的,因为内存的操作性能远远大于磁盘,因此缓存的查询效率会高很多;3、缓存更容易做分布式部署(当一台服务器变成多台相连的服务器集群),而数据库一般比较难实现分布式部署,因此缓存的负载和性能更容易平行扩展和增加。缓存大致分为两大类:本地缓存、分布式缓存本地缓存:也

weixin_54161577的博客 9827

spring-data-redis-1.6.0.RELEASE.jar + jedis-2.7.2.jar

spring-data-redis-1.6.0.RELEASE.jar + jedis-2.7.2.jar,另:相关的配置文件在我的代码片段中

tomcat7-jdk1.6+redis session共享以及Tomcat对应的配置示例

tomcat7-jdk1.6+redis session共享所有依赖包: tomcat-redis-session-manager.jar jedis.jar commons-pool.jar 以及Tomcat对应的配置示例,亲测可用

Redis技术笔记-从三大缓存问题到高可用集群落地实战

本文系统介绍了Redis的核心特性与常见缓存问题解决方案。Redis作为高性能键值数据库,支持多种数据结构,适用于缓存、排行榜等场景。文章重点分析了缓存三大问题:穿透(空值缓存+布隆过滤器)、击穿(互斥锁+软过期)、雪崩(分散过期+限流降级),并提供了详细解决方案。此外,详细讲解了Redis集群的搭建步骤,包括环境准备、集群创建、测试验证等环节,通过主从复制和分片机制实现高可用。最后展示了PHP连接Redis集群的实践方法,为构建高并发系统提供参考。

m0_65816971的博客 3251

基于DSP28335的Matlab/Simulink代码生成实验七:A/D采样

实验七:讲解如何使用DSP的ADC模块,通过代码生成技术控制DSP进行电流采样,是后续实现电机闭环控制的重要环节。通过简单的实验来熟悉代码生成的过程。最终实现复杂算法代码自动生成,进行高性能电机控制!

m0_73869369的博客 4724
上一篇: Java AJAX加载图片
下一篇: redis--bugger分析
jack_too
博客等级 码龄9年 17粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值