redios服务的搭建:
tar zxf redis-6.2.2.tar.gz
解压安装包
[root@server2 redis-6.2.2]# ls
00-RELEASENOTES CONDUCT COPYING INSTALL MANIFESTO redis.conf runtest-cluster runtest-sentinel src TLS.md
BUGS CONTRIBUTING deps Makefile README.md runtest runtest-moduleapi sentinel.conf tests utils
存在 Makefile 的文件,所以可以直接进行编译
需要在解压之前安装gcc软件
make install 下载
[root@server2 redis-6.2.2]# cd utils/
[root@server2 utils]# ls
build-static-symbols.tcl gen-test-certs.sh lru releasetools tracking_collisions.c
cluster_fail_time.tcl graphs redis-copy.rb speed-regression.tcl whatisdoing.sh
corrupt_rdb.c hashtable redis_init_script srandmember
create-cluster hyperloglog redis_init_script.tpl systemd-redis_multiple_servers@.service
generate-command-help.rb install_server.sh redis-sha1.rb systemd-redis_server.service
为你提供systemd的启动方式
[root@server2 utils]# ./install_server.sh
Welcome to the redis service installer
This script will help you easily set up a running redis server
This systems seems to use systemd.
Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry!
cp systemd-redis_server.service /usr/lib/systemd/system/redis_server.service
cp /mnt/redis-6.2.2/redis.conf /etc/redis/
编写文件:
vim /etc/redis/redis.conf
daemonize yes 修改内容
bind 0.0.0.0
dir /var/lib/redis 修改数据目录的位置
cp redis_init_script /etc/init.d/redis_6379
cd /etc/redis/
mv redis.conf 6379.conf
mkdir /var/lib/redis
/etc/init.d/redis_6379 start
[root@server2 redis]# /etc/init.d/redis_6379 start
Starting Redis server…
注:启动成功
systemd的启动方式:
rsync (不会忽略软连接的复制)
eg: rsync -a * server3:/usr/local/bin
编译数据的时候,添加参数
make USE_SYSTEMD=yes
cp systemd-redis_server.service /usr/lib/systemd/system/redis_server.service
编写配置文件:vim redis_server.service
修改文件:
/usr/lib/systemd/system/redis_server.service
取消注释:
AssertPathExitar zxf redis-6.2.2.tar.gzsts=/var/lib/redis
注释:
ExecStart=/usr/local/bin/redis-server --supervised systemd --daemonize no
取消注释:
ExecStart=/usr/local/bin/redis-server /path/to/your/redis.conf
修改其中的地址:
ExecStart=/usr/local/bin/redis-server /etc/redis/6937.conf
注释内容:
#TimeoutStartSec=infinity
#TimeoutStopSec=infinity
#UMask=0077
添加内容:
ExecStop=/usr/local/bin/redis-cli -p 6379 shutdown
ExecReload=/bin/kill -s HUP $MAINPID
在源码包中的操作:
cp redis.conf /etc/redis/
修改配置文件:
bind 0.0.0.0
daemonize yes
取消注释:
supervised auto
redi[root@server1 redis]# systemctl daemon-reload
[root@server1 redis]# systemctl start redis_server.service
redis服务的命令
redis常用命令:
config get //查看配置
select //选择数据库
flushdb //清空当前数据库
flushall //清空所有数据库
move key //移动key
del key //删除
rename oldkey newkey //改名
expire key 10 //设置过期时间
persist key //设置持久化
key user* /查询
exists key //判断是否存在
redis.cn 进入官网查看相关的数据类型
redis的主从复制
默认使用的异步复制
利用快照的功能
BGSAVE生成快照,并记录此期间的写命令
master的认证(默认没有认证)
sentinel
高可用:主从的切换
当网络出现问题时,发起主从切换,从slave中选出一个master,当网络恢复的时候,master变成了slave。
优化方案:设置最少存在的slave
min-slaves-to-weite <alave数量>(添加在主配置文件的最后)
min-slaves-max-lag <秒数>
进入源码包中
cp sentinel.conf /etc/redis
vim /etc/redis/sentinel.conf
超时时间:
sentinel monitor mymaster 172.25.40.1 6379 2
设置集群中master主机
sentinel failover-timeout mymaster 180000
sentinel down-after-milliseconds mymaster 10000
10s访问失败默认主观下线
在服务启动之前,需要scp完成多台服务的配置
redis-sentinel /etc/redis/6379.conf 观察主从状态
+sdown 主观下线状态
redis-cli -h 172.25.40.1 (redis的远程连接问题)
#REPLICAOF 172.25.40.3 (redis中的远程连接命令)