CentOS7环境下安装单机Redis

环:

CentOS 7

版本

redis 5.0.7

工具

Xshell

下载地址

http://download.redis.io/releases/redis-5.0.7.tar.gz

准备工作

在CentOS下配置安装环境
1、安装gcc编译器:yum install gcc
2、检测是否安装wget,若未安装,使用 yum install wget 命令安***r> 3、安装ruby:yum install ruby

开始安装

1、自己选定一个目录下载源码包
使用:wget http://download.redis.io/releases/redis-5.0.7.tar.gz 命令下载源码包,也可以用ftp上传到服务器

下载后压缩包如图


然后将压缩包解压:tar -zxvf redis-5.0.7.tar.gz (下载的压缩包名字)

2、编译源码并安装:

进入解压过后的目录:cd ./redis-5.0.7

使用make insatll编译安装(make命令由gcc提供),执行命令后会跑一会编译,稍微等待一下,跑完如下图

进入./src目录,如下图,会出现几个可执行文件(绿色),其中就包含了redis-server等redis服务

退回上级目录,建立一个新目录用于存放编译出来的可执行文件

然后删除多余的.c、.o文件,再将配置文件redis.conf、sentinel.conf复制到文件中

3、前台启动redis服务


此时redis是前台启动,使用Ctrl+C组合键可以退出运行

4、后台启动Redis服务

修改redis.conf配置文件:vim redis.conf

搜索bind将其改为bind 0.0.0.0掉,bind配置是绑定ip,只允许绑定的ip访问,改掉后允许所有ip访问

搜索protected-mode 后面的yes改为no,关闭保护模式

搜索daemonize 改no为yes,设置为后台运行,然后保存退出

启动redis:
redis-server ./redis.conf

5、访问redis-cli客户端
测试set和get一个值,测试成功

安装完成

6、配置外部应用程序访问配置
此时直接用Java的Jedis连接会报连接超时异常,使用之前应该先打开对应的端口或者关闭防火墙,如果只是在自己的个人学习主机或者虚拟机上,可以直接关闭防火墙

systemctl stop firewalld(关闭防火墙)
systemctl disable firewalld (禁止重新启用防火墙)

或开放端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent (开放6379端口)
systemctl restart firewalld (重启防火墙)

连接使用(maven项目)

1、pom.xml添加依赖

<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>3.2.0</version>
</dependency>

2、java连接使用

Jedis jedis = new Jedis("192.168.119.128",6379);
System.out.println(jedis.getSet("test","testValue2"));
System.out.println(jedis.get("test"));
jedis.del("test");
System.out.println(jedis.get("test"));
jedis.close();

输出结果:

常用属性配置项(可直接用默认的)

打开redis下的bin目录下的redis.conf文件

可以对以下参数进行配置

daemonize 默认情况下, redis 不是在后台运行的,如果需要在后台运行,把该项的值更改为 yes。

pidfile 当 Redis 在后台运行的时候, Redis 默认会把 pid 文件放在/var/run/redis.pid,你可以配置到其他地址。当运行多个 redis 服务时,需要指定不同的 pid 文件和端口

bind 指定 Redis 只接收来自于该 IP 地址的请求,如果不进行设置,那么将处理所有请求,在生产环境中最好设置该项

port 监听端口,默认为 6379

timeout 设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接

loglevel 等级分为 4 级, debug, verbose, notice, 和 warning。生产环境下一般开启 notice

logfile 配置 log 文件地址,默认使用标准输出,即打印在命令行终端的窗口上

databases 设置数据库的个数,可以使用 SELECT 命令来切换数据库。默认使用的数据库是 0

save 设置 Redis 进行数据库镜像的频率。

if(在 60 秒之内有 10000 个 keys 发生变化时){
	进行镜像备份
}else if(在 300 秒之内有 10 个 keys 发生了变化){
	进行镜像备份
}else if(在 900 秒之内有 1 个 keys 发生了变化){
	进行镜像备份
}

rdbcompression 在进行镜像备份时,是否进行压缩

dbfilename 镜像备份文件的文件名

dir 数据库镜像备份的文件放置的路径。这里的路径跟文件名要分开配置是因为 Redis 在进行备份时,先会将当前数据库的状态写入到一个临时文件中,等备份完成时,再把该该临时文件替换为上面所指定的文件,而这里的临时文件和上面所配置的备份文件都会放
在这个指定的路径当中

requirepass 设置客户端连接后进行任何其他指定前需要使用的密码。警告:因为 redis 速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒钟进行 150K 次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解。