一、下载redis文件
https://redis.io/download
二、上传redis文件(redis-6.2.6.tar.gz)到服务器进行编译安装
1、解压文件:
tar -zxvf redis-6.2.6.tar.gz
2、修改文件夹名称,简短一点
mv redis-6.2.6 redis6
3、进入目录:
cd redis6/
4、编译文件:
make
如果make命令报错(没错可跳过):
make[3]: cc:命令未找到
make[3]: *** [alloc.o] 错误 127
make[3]: 离开目录“/java/redis6/deps/hiredis”
make[2]: *** [hiredis] 错误 2
make[2]: 离开目录“/java/redis6/deps”
make[1]: [persist-settings] 错误 2 (忽略)
CC adlist.o
/bin/sh: cc: 未找到命令
make[1]: *** [adlist.o] 错误 127
make[1]: 离开目录“/java/redis6/src”
make: *** [all] 错误 2
解决方案(cc:命令未找到):
yum -y install gcc automake autoconf libtool make
如果make命令还报错(没错可跳过):
zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录
#include <jemalloc/jemalloc.h>
^
编译中断。
make[1]: *** [adlist.o] 错误 1
make[1]: 离开目录“/java/redis6/src”
make: *** [all] 错误 2
解决方案:make增加参数(致命错误:jemalloc/jemalloc.h):
make MALLOC=libc
5、编译后安装Redis
PREFIX为指定安装的目录,自动创建bin目录
make install PREFIX=/java/redis6
查看(多出一个bin目录):
ll
三、Redis配置文件复制和数据存放目录
1、创建一个redis数据存放目录datas,以后其它所有应用程序都将数据存放这里,方便备份
sudo mkdir -p /var/datas/redis
2、修改目录拥有者
sudo chown -R java:java /var/datas
3、复制redis.conf配置文件到bin目录
cp /java/redis6/redis.conf /java/redis6/bin/
4、进入bin目录:
cd /java/redis6/bin/
四、redis.conf配置文件属性修改
修改redis.conf配置文件
vi /java/redis6/bin/redis.conf
1、Redis开启守护进程模式
找到daemonize配置项,修改为yes,开启守护进程模式
daemonize yes
2、Redis取消IP绑定
注释bind 127.0.0.1这行,只能本地连接redis,不然无法使用远程连接。
# bind 127.0.0.1
3、Redis关闭保护模式
将protected-mode的yes改为no,也是开启远程连接。
protected-mode no
4、修改Redis默认端口(可省略)
默认端口是6378,修改成6677
port 6677
位置和示例:
# Accept connections on the specified port, default is 6379 (IANA #815344).
# If port 0 is specified Redis will not listen on a TCP socket.
port 6677
5、Redis修改rdb文件名、存放目录、日志文件名
文件名及路径相关配置
pidfile /var/run/redis_101_6677.pid
logfile "redis-101-6677.log"
dbfilename dump-101-6677.rdb
dir /var/datas/redis/
dir 配置日志和rdb文件存放的目录,后面要带/
位置:
# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir /var/datas/redis/
6、Redis修改密码:requirepass 密码(不需要可省略)
打开注释,修改密码为:123456
requirepass 123456
位置:
# IMPORTANT NOTE: starting with Redis 6 "requirepass" is just a compatibility
# layer on top of the new ACL system. The option effect will be just setting
# the password for the default user. Clients will still authenticate using
# AUTH <password> as usually, or more explicitly with AUTH default <password>
# if they follow the new protocol: both will work.
#
# The requirepass is not compatable with aclfile option and the ACL LOAD
# command, these will cause requirepass to be ignored.
#
# requirepass foobared
三、Redis启动和测试
1、启动Redis
/java/redis6/bin/redis-server /java/redis6/bin/redis.conf
2、查看redis进程:
ps -ef | grep redis
3、启动Redis客户端
#默认启动命令(默认端口是6379)
/java/redis6/bin/redis-cli
#指定IP地址和指定端口启动
#-h host 指定IP地址
#-p port 指定端口号
/java/redis6/bin/redis-cli -h 127.0.0.1 -p 6677
#指定IP地址、端口号、密码启动
#-h host 指定IP地址
#-p port 指定端口号
#-a auth 指定密码,首先得在配置文件设置密码:requirepass 123456
/java/redis6/bin/redis-cli -h 127.0.0.1 -p 6677 -a redisPassword
四、Centos7设置Redis开机启动,Redis自启动
1、在系统服务目录里创建redis.service文件
sudo vi /etc/systemd/system/redis.service
2、redis.service文件粘贴内容(粘贴前先按字母 i , 进入编辑模式):
路径修改成自己的安装路径
[Unit]
#Description:描述服务
Description=Redis
#After:描述服务类别
After=network.target
#服务运行参数的设置
[Service]
#Type=forking是后台运行的形式
Type=forking
#ExecStart为服务的具体运行命令,路径必须是绝对路径
ExecStart=/java/redis6/bin/redis-server /java/redis6/bin/redis.conf
#ExecReload为重启命令 ,路径必须是绝对路径
ExecReload=/java/redis6/bin/redis-server -s reload
#ExecStop为停止命令 ,路径必须是绝对路径
ExecStop=/java/redis6/bin/redis-server -s stop
#PrivateTmp=True表示给服务分配独立的临时空间
PrivateTmp=true
#运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
[Install]
WantedBy=multi-user.target
3、重载系统服务:
sudo systemctl daemon-reload
4、redis.service服务加入开机自启 (注意redis.service后面不能跟空格 )
sudo systemctl enable redis.service
5、重启服务器
reboot -f
6、系统重启后,查看服务运行状态:
sudo systemctl status redis.service
7、其它命令
sudo systemctl start redis.service #启动redis服务
sudo systemctl enable redis.service #设置开机自启动
sudo systemctl disable redis.service #停止开机自启动
sudo systemctl status redis.service #查看服务当前状态
sudo systemctl restart redis.service #重新启动服务
sudo systemctl list-units --type=service |grep redis #查看所有已启动的服务
五、Redis连接的端口开放
1、开放端口:
sudo firewall-cmd --zone=public --add-port=6677/tcp --permanent
2、让端口生效:
sudo firewall-cmd --reload
3、查看防火墙所有开放的端口
sudo firewall-cmd --zone=public --list-ports
六、Linux Redis 重启数据丢失解决方案
在Linux系统设置一个参数(vm.overcommit_memory)即可解决。
步骤如下:
1、编辑 sysctl.conf 配置文件
sudo vi /etc/sysctl.conf
2、在文件注释下面另起一行增加参数 vm.overcommit_memory 配置,如下
vm.overcommit_memory = 1
3、使配置文件生效
sudo sysctl -p
4、测试
#指定IP地址和指定端口启动
#-h host 指定IP地址
#-p port 指定端口号
/java/redis6/bin/redis-cli -h 127.0.0.1 -p 6677
set aa 11
get aa
5、重启服务器
重启服务器再重复第4步连接redis客户端查看数据
reboot -f