Spring Boot——Redis安装配置与应用整合

引言

Spring Boot默认以ConcurrentHashMap作为缓存容器,但默认的缓存容器在简单的场景使用还是可以的,而作为NoSQL的代表,Redis可以做内存数据库、消息中间件都是不错的,而且有RedisDesktopManager作为可视化管理工具,让我们能够像使用一般数据库一样编辑内存中的数据,因此,大多数企业都要求能够掌握基本的Redis的使用。

本篇博客将介绍如下内容:

如何在CentOS中安装Redis,命令行下的redis启动、登录、设置密码、关闭redis,Spring Boot整合Redis以及简单的操作。

一、Linux(CentOS 6.10)中安装Redis

Linux环境采用传统企业服务器用的比较多的CentOS版本,并使用虚拟机作为服务器,具体虚拟机服务器的创建和系统安装,可以参考《Linux——VMware虚拟机安装CentOS步骤》。

下面,默认已经安装好CentOS系统。

1.1 本机下载安装包

官网下载redis安装包:http://120.52.51.18/download.redis.io/releases/redis-5.0.3.tar.gz 

然后,确保你的虚拟机或远程主机已经开启,通过远程访问的方式将压缩包上传到CentOS系统中。

推荐使用MobaXterm进行传输。或者也可以使用U盘 :)将压缩包拷贝到Linux中的 /opt目录下之后,开始正式进入安装步骤。

1.2 安装redis

>1、 进入压缩包所在目录:

>2、 tar 命令解压缩:

[root@CentOS opt]# tar -zxvf redis-5.0.3.tar.gz

 回车执行解压命令,然后可以看到当前目录多了一个redis-5.0.3文件夹:

>3、 安装GCC编译器:

由于redis是用C编写的,因此,要安装redis就必须先安装gcc编译器,它是包括C,C++语言在内的编译器,类似于Java中的javac。

注意,在没有预安装gcc编译工具的环境中直接使用 make 命令安装redis会报 :gcc 命令未找到。可以使用下面的命令在已联网情况下安装gcc编译工具(未联网情况下此博客忽略):

[root@CentOS opt]# yum install gcc-c++

 回车执行命令后,可以看到下面的信息,执行 gcc -v 命令可以查看gcc版本:

>4、安装redis:

切换到redis目录下,执行 make 命令(若忘记了安装gcc导致make报错,安装gcc后须先执行 make distclean 再 make):

[root@CentOS opt]# cd redis-5.0.3
[root@CentOS redis-5.0.3]# make

等待命令执行完毕后,再执行 make install 命令:

[root@CentOS redis-5.0.3]# make install

 安装完成后,可以查看一下redis安装效果:

至此,Linux环境上的redis已经安装完毕。

二、redis启动、登录与停止

redis安装后,redis命令会默认安装在 /usr/local/bin 目录下,这里值得一提的是 /usr 目录的作用:

这是一个非常重要的目录,用户的许多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

启动redis:

登录redis:

另起一个终端,输入如下命令回车(命令后面可追加 -p 6379 端口号):

停止redis:

三、Spring Boot整合Redis

redis在虚拟机中安装好之后以后台运行的方式使用即可,接下来是通过spring boot来操作redis库。

3.1 添加redis依赖

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

3.2 配置redis主机

在配置文件中加入下面配置:

#redis
spring.redis.host=192.168.1.129

 这里注意,实际生产中,会将应用程序与redis库放在同一台服务器上,毕竟redis是用于缓存管理,如果放在远程服务器上,增加了IO消耗,可能就失去性能上的价值,所以这里可能会配置为localhost。另外还有一些其他的属性配置,见下表:

# REDIS (RedisProperties)
spring.redis.host=localhost # 服务器IP
spring.redis.password= # redis服务密令
spring.redis.port=6379 # 端口号
spring.redis.database=0 # redis 数据库索引(默认为0)
spring.redis.pool.max-idle=8 # redis连接池最大空闲连接
spring.redis.pool.min-idle=0 # redis连接池最小空闲连接
spring.redis.pool.max-active=8 # redis连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-wait=-1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.timeout=0 # 连接超时时间(毫秒)

更多配置请参考《Spring Boot配置文件application properties配置详解》

3.3 修改redis配置

虽然redis已经安装完毕,且可以通过命令行模式进行操作,但是要想使用spring boot访问redis库,还需要两个配置步骤:

关闭防火墙、修改redis.conf 取消远程访问保护

> 立刻关闭防火墙(无需重启):

扩展

立刻开启防火墙(无需重启):

> service iptables start

永久关闭防火墙(重启后生效):

> chkconfig iptables off

永久开启防火墙(重启后生效):

> chkconfig iptables on

查看防火墙状态:

> service iptables status

> 取消远程访问保护:

vim修改 redis.conf 文件,在 ###### NETWORK ###### 一栏中,将  bind 127.0.0.1 注释掉  ,然后将 protected-mode yes  改为 no:

至此,我们就可以通过主机上的应用程序访问redis库了。

3.4 编写测试代码

主配置类添加@EnableCaching注解。

简单写一个controller接口,使用StringRedisTemplate进行添加和获取,观察执行结果:

@Autowired
StringRedisTemplate stringRedisTemplate;@ResponseBody
@RequestMapping("/redis/getkey")
public String getValue() {stringRedisTemplate.opsForValue().set("my-key", "Moonlight");return stringRedisTemplate.opsForValue().get("my-key");
}

启动项目后,调用接口,得到redis库中的存储数据:

同时,如果已经安装了redisDesktopManager可视化工具(下载地址:https://www.newasp.net/soft/391754.html),也可以连接redis后,查看内部数据:

四、设置redis访问密码

默认情况,redis没有访问密码,如果希望添加redis访问密码,可以先登录到redis之后进行如下设置:

查看当前密码:

设置新密码为123456:

重新登录:

总结

综上,就是关于redis的简明使用,欢迎文末留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/558846.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用Aria2高速下载网盘文件

利用Aria2高速下载网盘文件 方法步骤&#xff1a; 下载文件 解压arial2&#xff0c;运行aria2启动.VBS添加插件&#xff0c;解压BaiduExporter-master.zip在Google浏览器扩展程序中chrome://extensions加载已经解压的扩展程序 选择BaiduExporter进行添加即可&#xff0c;打开…

MySQL——JSON_REPLACE()函数修改JSON属性值

引言 由于对mysql的函数并不了解&#xff0c;之前遇到了一个场景&#xff1a; mysql表中有一个字段res_content 是一个由longtext类型&#xff08;可以理解为一个更长的varchar&#xff09;保存的巨大的JSON对象&#xff0c;但是&#xff0c;由于录入的疏忽&#xff0c;导致这…

Spring Boot整合Redis——自定义RedisSerializer

引言 spring boot简单引入redis依赖&#xff0c;并使用RedisTemplate进行对象存储时&#xff0c;需要使存储对象实现Serializable接口&#xff0c;这样才能够成功将对象进行序列化。 RedisTemplate默认使用的序列化机制是JdkSerializationRedisSerializer&#xff0c;但实际开…

交易系统如何确保账簿100%准确

转自廖雪峰老师的《交易系统如何确保账簿100%准确》 这篇文章阐述了一个交易系统中对账功能的关键&#xff0c;即&#xff1a;时刻保证资产负债表总额始终为 0。 交易系统中&#xff0c;对账是一个大问题。对账处理不好&#xff0c;不但需要花费大量的人力去处理账簿&#xff…

通俗易懂的SpringBoot教程---day1---Springboot入门教程介绍

通俗易懂的SpringBoot教程—day1—教程介绍 教程介绍&#xff1a; 初级教程&#xff1a; 一、 Spring Boot入门 二、 Spring Boot配置 三、 Spring Boot与日志 四、 Spring Boot与Web开发 五、 Spring Boot与Docker&#xff1a;Docker容器 六、 Spring Boot与数据访问&#x…

Java 8中获取参数名称

本文转自廖雪峰老师的&#xff1a;《在Java 8中获取参数名称》 在Java 8之前的版本&#xff0c;代码编译为class文件后&#xff0c;方法参数的类型是固定的&#xff0c;但参数名称却丢失了&#xff0c;这和动态语言严重依赖参数名称形成了鲜明对比。现在&#xff0c;Java 8开始…

通俗易懂的SpringBoot教程---day2---Springboot配置文件

通俗易懂的SpringBoot教程—day2—Springboot配置文件 1、配置文件 SpringBoot使用一个全局的配置文件&#xff0c;配置文件名是固定的&#xff1b; •application.properties •application.yml 配置文件的作用&#xff1a;修改SpringBoot自动配置的默认值&#xff1b;Spring…

Could not resolve host: 'localhost 报错解决办法

Could not resolve host: localhost 报错解决办法 面向Windows的&#xff1a; 零基础的我一直卡在这一步骤下&#xff1a; 首先要先在Windows安装curl&#xff1a;安装方式参考&#xff1a;https://blog.csdn.net/weixin_41986096/article/details/86646365 按照完之后&…

当面试官问我————为什么String是final的?

面试官&#xff1a;你好&#xff0c;能看得清下面这张图吗&#xff1f; 我&#xff1a;可以的。 面试官&#xff1a;恩&#xff0c;好的。呃&#xff0c;你能不能说一说为什么String要用final修饰&#xff1f; 我&#xff1a;final意味着不能被继承或者被重写&#xff0c;Str…

当面试官问我————Java是值传递还是引用传递?

面试官&#xff1a;你好&#xff0c;你能说出下面个程序的执行结果吗&#xff1f; public class Test {public static void main(String[] args) {String name "Scott";int age 5;User user new User();user.setName(name);user.setAge(age);System.out.println(…

ubuntu系统下Jenkins和tomcat的安装与配置

ubuntu 安装 JDK ubuntu的安装我们采取最简单的方式安装 直接用apt-get的方式 sudo apt-get install openjdk-8-jdk 安装器会提示你同意 oracle 的服务条款,选择 ok 然后选择yes 即可 ubuntu 安装tomcat8 通过apt安装 tomcat8 sudo apt-get install tomcat8 tomcat8-docs t…

String字符串拼接小例

>>>写出下面程序运行结果&#xff1a; public class StringTest {public static void main(String[] args) {String s1 "Programming";String a "Program";String b "ming";String s2 "Program" "ming";Stri…

看完这篇文章,还不懂nginx,算我输

看完这篇文章&#xff0c;还不懂nginx&#xff0c;算我输 参考&#xff1a;https://mp.weixin.qq.com/s/PeNWaCDf_6gp2fCQa0Gvng 1. Nginx产生~ Nginx 同 Apache 一样都是一种 Web 服务器。基于 REST 架构风格&#xff0c;以统一资源描述符&#xff08;Uniform Resources Id…

一篇博客读懂设计模式之---工厂模式

设计模式之—工厂模式 工厂模式&#xff1a; 创建过程&#xff1a; 创建Shape接口 public interface Shape {void draw(); }创建实现类&#xff1a; public class Circle implements Shape {Overridepublic void draw() {System.out.println("this is a circle!"…

一篇博客读懂设计模式之-----策略模式

设计模式之策略模式 在策略模式中&#xff0c;我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的对象 定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 主要解决&#xff1a;在有多种算法相似的情况下&#xff0c;使用 if…else 所带来的复杂和…

Java并发编程实战————恢复中断

中断是一种协作机制&#xff0c;一个线程不能强制其他线程停止正在执行的操作而去执行其他操作。 什么是中断状态&#xff1f; 线程类有一个描述自身是否被中断了的boolean类型的状态&#xff0c;可以通过调用 .isInterrupted() 方法来查看。官方解释如下&#xff1a; 简单来…

一篇博客读懂设计模式之---模板方法模式

设计模式之模板方法模式&#xff1a; 定义一个操作中的算法的骨架&#xff0c;而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 简而言之就是&#xff1a;父类定义了骨架&#xff08;调用哪些方法及其顺序&#xff09;…

一篇读懂--mybatis的缓存

一篇读懂–mybatis的缓存 MyBatis的缓存指的是缓存查询结果&#xff0c;当以后使用相同的sql语句、传入相同的参数进行查询时&#xff0c;可直接从mybatis本地缓存中获取查询结果&#xff0c;而不必查询数据库。 mybatis的缓存包括一级缓存、二级缓存&#xff0c;一级缓存默认…

Spring Boot————BeanCreationNotAllowedException异常分析

引言 在对数据库进行新增记录的JUnit测试时&#xff0c;抛出一个BeanCreationNotAllowedException异常&#xff1a; 异常分析与解决 异常信息太长&#xff0c;图片截不下&#xff0c;粘贴来看&#xff1a; Exception in thread "pool-2-thread-1" org.springframew…

一篇博客读懂设计模式之---委派模式

一篇博客读懂设计模式之—委派模式 委派模式可能大家听起来不太熟悉&#xff0c;但是在代码开发的时候却很好用&#xff0c;下面从几个方面来介绍一下 what&#xff1a;是什么&#xff1f; 委派模式&#xff1a;顾名思义&#xff0c;委托其他对象或者实例来帮我们完成任务&am…