Redis
redis是一个开源、使用C芋圆编写的、支持网络交互的、可基于内存也可以持久化的Key-Value的数据库
特点:
1.Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
2.Redis不仅仅支持Key-Value类型的数据,同时还提供string、list、set、zset、hash等数据结构的存储
3.Redis支持数据备份,即master-salve模式的数据备份
优势:
1.性能极高 Redis的读写速率是110000次/秒,写的速率是81000次/s
2.丰富的数据类型 Redis支持二进制案例的Strings,List、Hashes、Sets以及Ordered Sets数据类型操作
3.原子 Redis的所有操作都是原子性的,意思就是要么成功执行,要么失败完全不执行。单个操作是原子性的,多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来
3.丰富的特性 Redis还支持publish/subscribe,通知,key过期等等特性
Redis编译安装
[root@i-m60lx3hh ~]# wget http://download.redis.io/releases/redis-4.0.0.tar.gz
[root@i-m60lx3hh ~]# tar xzvf redis-4.0.0.tar.gz -C /usr/local/
[root@i-m60lx3hh redis-4.0.0]# cd /usr/local/redis-4.0.0/
[root@i-m60lx3hh redis-4.0.0]# make
[root@i-m60lx3hh redis-4.0.0]# make test
[root@i-m60lx3hh redis-4.0.0]# make install
测试make test报错
You need tcl 8.5 or newer in order to run the Redis test
make[1]: *** [test] Error 1
安装tcl
[root@i-m60lx3hh ~]# wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
[root@i-m60lx3hh ~]# tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/
[root@i-m60lx3hh unix]# cd /usr/local/tcl8.6.1/unix/
[root@i-m60lx3hh unix]# sudo ./configure
[root@i-m60lx3hh unix]# sudo make
[root@i-m60lx3hh unix]# sudo make install
Redis使用yum安装
EPEL源安装
配置镜像源安装即可
aliyun.com
服务管理
重新启动Redis守护程序,并使其重新启动时自动启动
sudo serivce redis start
基本服务操作
## 启动并后台运行
redis-server & nohup
## 查看是否启动
redis-cli ping
## 关闭命令
redis-cli shutdown
##命令行客户端启动
redis-cli
# 启动
service redis start
# 停止
service redis stop
# 命令行客户端启动
redis-cli -p 6379
# 指定端口后台启动
redis-server --port 6379 &
# 查看版本
redis-cli info |grep redis_version
查看端口号
redis-cli info |grep tcp_port
## 服务管理
systemctl status redis
systemctl start redis
systemctl stop redis
# 开机启动
yum安装
systemctl enable redisservice
编译安装
把/usr/local/redis-4.0.0/utils/redis_init_script脚本拷贝到/etc/init.d目录下命名为redis
cp /usr/local/redis-4.0.0/utils/redis_init_script /etc/init.d/redis-6379
拷贝下redis.conf文件到/etc/redis目录下
mkdir /etc/redis/
cp /usr/local/redis-4.0.0/redis.conf /etc/redis/6379.conf
# 配置文件修改
#是否在后台运行改成yes
daemonize yes
# 更改权限,通过chkconfig命令检查,设置系统redis服务开启
[root@i-m60lx3hh ~]# chmod +x /etc/init.d/redis-6379
[root@i-m60lx3hh ~]# chkconfig redis on
# 必须把下边两行加在文件头部,不设置会报错service redis-6379 does not support chkconfig
# chkconfig: 2345 90 10
# description: redis is a persistent key-value database
意思是:redis必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是10
# 查看配置
127.0.0.1:6379> config get *
# 更改配置
config set 参数名称 参数要修改的值
# 设置密码
requirepass 密码
bind 127.0.0.1 改成0.0.0.0 去掉注释
主从架构配置
正常情况使用两台机器
这里使用一台设置不同端口
[root@i-m60lx3hh ~]# cp /usr/local/redis-4.0.0/utils/redis_init_script /etc/init.d/redis-6380
[root@i-m60lx3hh ~]# sed -ri 's#(REDISPORT=)(.*)#\16380#g' /etc/init.d/redis-6380 # -r使用正则 i直接在文件里修改
vim /etc/redis/6380.conf
port 6380
bind 自己机器ip
slaveof mster节点ip 端口
masterauth master的redis的密码
实时监控连接数等
[root@i-m60lx3hh ~]# redis-cli -h 10.140.57.59 -a '密码' --stat
------- data ------ --------------------- load -------------------- - child -
keys mem clients blocked requests connections
0 1.81M 1 0 798 (+0) 396
0 1.81M 1 0 800 (+2) 396
0 1.81M 1 0 802 (+2) 396
0 1.81M 1 0 804 (+2) 396
0 1.81M 1 0 806 (+2) 396
0 1.81M 1 0 808 (+2) 396
0 1.81M 1 0 810 (+2) 396
0 1.81M 1 0 812 (+2) 396
0 1.81M 1 0 814 (+2) 396
0 1.81M 1 0 816 (+2) 396
0 1.81M 1 0 818 (+2) 396
0 1.81M 1 0 820 (+2) 396
0 1.81M 1 0 822 (+2) 396
查看最大key和平均值
[root@i-m60lx3hh ~]# redis-cli -h 10.140.57.59 -a '密码' --bigkeys
# Scanning the entire keyspace to find biggest keys as well as
# average sizes per key type. You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usually needed).
-------- summary -------
Sampled 0 keys in the keyspace!
Total key length in bytes is 0 (avg len 0.00)
0 strings with 0 bytes (00.00% of keys, avg size 0.00)
0 lists with 0 items (00.00% of keys, avg size 0.00)
0 sets with 0 members (00.00% of keys, avg size 0.00)
0 hashs with 0 fields (00.00% of keys, avg size 0.00)
0 zsets with 0 members (00.00% of keys, avg size 0.00)
查看指定库的key
[root@i-m60lx3hh ~]# redis-cli -h 10.140.57.59 -a '密码' -n 15 --scan
实时监控redis
[root@i-m60lx3hh ~]# redis-cli -h 10.140.57.59 -a '密码' monitor
redis备份与恢复
# 备份
可以通过执行svar命令或者bgsave命令进行手动备份,也可以通过配置sva参数实现自动备份。手动备份会阻塞redis主线程,如果数据较大,可能会影响服务的正常运行,因此建议使用bgsave(创建子线程不会影响主进程)进行备份
# 恢复
将备份文件(默认为dump.rdb)放置在redis数据目录下,并在配置文件中设置dbfilename参数位备份文件,然后启动redis即可完成数据恢复
2、AOF备份与恢复
备份
可以通过执行bgrewriteraof命令手动备份,也可以通过修改appendfsync参数实现自动备份。手动备份不会影响redis正常运行
恢复
将aof备份文件放到数据目录下,并在配置中设置appendonly参数为yes,然后启动redis即可完成数据恢复
⚠️:aof备份比rdb备份更加安全,因为aof文件记录了redis实例所有写操作,可以保证数据的一致性和完整性。但是aof备份通常比rdb文件更大,需要更多的存储空间和网络带宽,此外,aof文件恢复数据的速度可能比rdb文件恢复慢一些。

浙公网安备 33010602011771号