单机版-redis部署
部署模式:单机版-redis部署
Redis版本:redis-4.0.1
部署redis方式:手动部署
在完成第三步时已完成配置,后续为操作命令以及注意事项;
在进行操作数据库时,需要关注第五步注意事项,会涉及reids数据的存取位置问题。
配置文件redis版本可能有变,只需修改自身redis版本即可
目录
一、资源
二、解压安装、编译
1、上传资源
2、解压
3、编译
三、配置-配置文件
1、redis.conf配置
2、启动脚本配置
四、启停redis相关命令
1、脚本操作redis启停
2、其他方式操作redis
3、登录redis客户端
五、注意事项
1、redis数据库存取位置
2、测试jar包中参数修改
Redis官方下载地址
Download | Redis
https://redis.io/download/#redis-downloads
此处放在/home/tjuser/redis/下
通过tar 解压
例如
tar -zxvf redis-4.0.1.tar.gz
在编译前先检查gcc版本
(1)检查gcc版本
gcc -v
没有安装或版本为4.8.5的,在编译时可能会出错
(2)安装gcc
yum install -y gcc tcl
编译操作必须在解压后的文件中进行,此处为
cd /home/tjuser/redis/redis-4.0.1/
make
只有在编译后才会生产执行文件redis-server和客户端redis-cli
编译过程可能出错:提示如下
原因、解决方式:
Redis版本过高可能会报错
make报错是因为gcc版本过低,yum安装的gcc是4.8.5的。
所以需要升级gcc,升级过程如下
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
gcc -v#到解压后的redis目录下继续执行make命令即可
校验是否编译成功
进入/redis-4.0.1/src/目录下,通过ls查看文件,出现redis-server,redis-cli等文件即为编译正确,否则出现的是redis-server.c等类似的文件
redis.conf配置以及启动脚本配置
创建redis.conf文件
Reids的redis.conf配置文件位置一般位于
/etc/redis/redis.conf
redis.conf文件内容如下:
文件名称自取,不用赋予权限,创建文件的权限即可
#如果bind 0.0.0.0表示所有ip都可访问,如果想限制ip,则有 bind ip ip,可以写多个,空格隔开
bind 0.0.0.0#protected-mode 设置为 yes 时,Redis 只会监听 127.0.0.1 地址,当 protected-mode 设置为 no 时,
#Redis 不再限制网络访问,可以通过任何 IP 地址访问 Redis 服务
protected-mode no#端口配置
port 6379#pid文件路径,如果需要使用启动脚本,则启动脚本中的pid路径需与此处pid路径一致,否则脚本会不能用,只可以启动,不可以停止
pidfile "/data/redis/redis_6379.pid"#日志文件路径
logfile "/data/redis/redis_6379.log"#数据持久化位置
dir "/data/redis/data"#设置后台启动daemonize yes表示后台启动,反之
daemonize yes#设置密码
requirepass promace@123#设置aof格式的持久化操作
appendonly yes
appendfilename "appendonly-41.aof"
注意事项:
redis.conf内容中的设置的持久化操作是必须的,否则数据可能会丢失
持久化配置有两种方式,rdb和aof
aof持久化
appendonly yes
appendfilename "appendonly-41.aof"
rdb持久化
rdb的定时配置
每五秒钟写一次RDB文件,如果至少有一个键发生更改
Save 5 1
dbfilename dump.rd
持久化的数据会在dir 目录下生成该文件
可通过redis.conf文件查看 dir 的目录
脚本位置:/etc/init.d/redis (一般位于此处),需自建redis文件
vim /etc/init.d/redis
脚本内容:
#!/bin/sh
# chkconfig: 2345 80 90
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.#redis端口
REDISPORT=6379#redis执行文件的位置
EXEC=/home/tjuser/redis/redis-3.2.8/src/redis-server#redis客户端文件的位置,
CLIEXEC=/home/tjuser/redis/redis-3.2.8/src/redis-cli#此处pid路径需确保与redis.conf文件中pid的位置一致,不然无法保证启动脚本的作用
PIDFILE=/data/redis/redis_${REDISPORT}.pid#reids.conf文件的路径,名称可能不同。
#例如6379.conf,若为reids_6379.conf,需为redis_${REDISPORT}.conf格式,pid也类似
CONF="/etc/redis/${REDISPORT}.conf"case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
kill -9 $PID
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esacexit 0
#赋予权限
sudo chmod +x /etc/init.d/redis
#设置redis的开机自启动
sudo chkconfig redis on
注意事项:
启动脚本中的# chkconfig: 2345 80 90
注释必不可少,不然无法设置redis的开机自启动
如果PIDFILE文件的位置和redis.conf中pid的路径不一致,会造成用只能用service redis start启动redis,无法service redis stop关闭redis,到时候只能通过kill -9 pid杀掉进程
service redis start
service redis stop
service redis restart
service redis status
如果启动脚本失效,则使用以下原始的命令进行启停redis
启动redis的方式
以redis-server 和redis.conf文件配合启动,此处的redis.conf文件名为6379.conf
只需根据redis-server和redis.conf文件的路径写即可
启动-命令示例
/home/tjuser/redis/redis-3.2.8/src/redis-server /etc/redis/6379.conf &
注意:只需找到两个文件的路径,该命令中间有空格,&前有空格
停止命令
方式一:
可以通过ps -ef | grep redis查找pid
使用kill -9 pid 杀掉进程
方式二:
还可以通过
Redis-cli -a password shutdown
此处有空格,为了看着明显空格较多,password为redis的密码
如果没有设置密码
可直接使用Redis-cli shutdown 关闭redis
(1)登录
方式1:
进入redis客户端的命令,设置了密码(此处要进入redis-cli的目录进行执行命令,或者它存在的目录)
如/home/redis/redis-4.0.1/src/redis-cli -a password
又或者
./redis-cli -a password
方式2:
或者通过
如 /home/redis/redis-4.0.1/src/redis-cli
或者
./redis-cli (路径如方式一)
进入客户端,在ping时显示没有权限,设置了密码
再通过
auth password(此时已经通过redis-cli登录了Redis的客户端)
即可登录
(2)操作数据库
redis登录客户端的写操作,默认是写在第一个数据库中,总共有(0-15)16个数据库
如果想进入第二个数据库,在通过redis-cli登录客户端的前提下
通过select 1进入第二个数据库进行读写操作
在通过启动jar包方式,进行测试存取数据时,
存取redis数据的位置由application.properties中的database进行控制;
例如application.properties文件中的
spring.redis.database=1
则在进行操作redis数据库时,数据的存取会在Redis的第一个数据库中进行。
在进行测试时,根据自身需求在application.properties文件中修改以下参数的值即可
server.port
spring.redis.database
spring.redis.host
spring.redis.port
spring.redis.password
在通过curl 进行操作数据库时,也要注意响应ip、port和key