一、介绍
1.简介
redis是一个开源的、使用C语言编写的、可基于内存也可持久化的Key-Value数据库,采用单线程基于epoll模型实现IO多路复用非阻塞的处理模式。
2.特点
bash
1.丰富的数据结构 -----Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)等数据结构的存储
2.支持持久化
3.支持主从、集群、哨兵
4.性能极高 -- Redis能读的速度是110000次/s,写的速度是81000次/s。
5.pub/sub模式的发布、订阅消息队列服务器
二、安装Redis
1.安装单机版Redis
bash
wget https://download.redis.io/releases/redis-7.0.9.tar.gz #下载redis压缩包
tar zxvf redis-7.0.9.tar.gz -C /usr/local #解压
mv /usr/local/redis-7.0.9 /usr/local/redis #改名
yum -y install gcc make #下载编译工具
cd /usr/local/redis
make #编译
# vim /redis.conf
bind 192.168.91.5 #监听内网IP
daemonize yes #开启后台模式将no改为yes
dir /data/application/redis/data #本地数据库存放持久化数据的目录该目录-----需要存在
logfile "/var/log/redis.log" #设置日志存放路径与日志名
./src/redis-server redis.conf #启动
pkill redis #关闭
我们也可以配置redis为systemctl启动
bash
#vim /lib/systemd/system/redis.service
[Unit]
Description=Redis
After=network.target
[Service]
ExecStart=/data/application/redis/src/redis-server /data/application/redis/redis.conf --daemonize no
ExecStop=/data/application/redis/src/redis-cli -h 127.0.0.1 -p 6379 shutdown
[Install]
WantedBy=multi-user.target
systemctl daemon-reload #重新加载
systemctl start redis-service #启动
#测试
# /usr/local/redis/src/redis-cli -h 192.168.91.5 -p 6379 #登录redis
192.168.246.202:6379> ping #测试redis是否可以用
PONG
2.数据持久化(把数据保存到可永久保存的存储设备中 )
bash
redis提供了两种持久化方式(RDB和AOF)
1.RDB是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上
特点:
(1).周期性
(2).不影响数据写入
(3).高效
(4).完整性较差
2.AOF是换了一个角度来实现持久化,那就是将redis执行过的所有写指令记录下来,在下次redis重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了
特点:
(1).实时性
(2).完整性较好
(3).体积大
bash
如何选择持久化方式?
缓存:不用开启任何持久方式
双开:因RDB数据不实时,但同时使用两者时服务器只会找AOF文件,所以RDB留作万一的手段。
官方的建议是两个同时使用。这样可以提供更可靠的持久化方案。
写入速度快 ------------AOF
写入速度慢 ------------RDB
持久化配置
bash
1、RDB默认开启
#vim /usr/local/redis/redis.conf
dbfilename dump.rdb #持久化数据存储在本地的文件
dir /data/application/redis/data #持久化数据存储在本地的路径
stop-writes-on-bgsave-error yes #yes代表当使用bgsave命令持久化出错时候停止写RDB快照文件,no表明忽略错误继续写文件,"错误"可能因为磁盘已满/磁盘故障/OS级别异常等
rdbcompression yes #是否启用rdb文件压缩,默认为"yes",压缩往往意味着"额外的cpu消耗",同时也意味着较短的网络传输时间
2.AOF默认关闭
#vim /usr/local/redis/redis.conf
appendonly yes #此选项为aof功能的开关,默认为"no",可以通过"yes"来开启aof功能,只有在"yes"下,aof重写/文件同步等特性才会生效
3.redis数据库备份与恢复
bash
做备份机器的redis.conf配置文件内容:
#vim /usr/local/redis/redis.conf
dbfilename dump.rdb
dir ./data
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
bash
迁移的机器上备份数据:
[root@redis-slave-1 redis]# src/redis-cli
127.0.0.1:6379> set name3 qianfeng
OK
127.0.0.1:6379> set name4 tianyun
OK
127.0.0.1:6379> BGSAVE 执行备份,或者敲SAVE
[root@redis-slave-1 redis]# ls data/
dump.rdb
bash
恢复数据的机器:
修改redis.conf配置文件
#vim /usr/local/redis/redis.conf
dbfilename dump.rdb
./data
bash
迁移机器将备份数据远程传输到恢复机器
[root@redis-slave-1 redis]# scp data/dump.rdb 192.168.62.135:/data/application/redis/data/
将dump.rdb数据文件存放到配置文件制定的目录下,直接启动即可
[root@redis-master redis]# src/redis-server redis.conf &
[root@redis-master redis]# src/redis-cli
[root@redis-master redis]#
127.0.0.1:6379> get name3
"qianfeng"
127.0.0.1:6379> get name4
"tianyun"
完成以上操作,我们单机版的redis就安装成功了,并且做好备份和恢复,接下来还有redis的主从复制、redis的哨兵模式和redis集群我们日后再接着说