引言
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的简明使用,欢迎文末留言。