从运维角度去了解redis

一、介绍

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集群我们日后再接着说

相关推荐
ManageEngineITSM44 分钟前
技术的秩序:IT资产与配置管理的现代重构
大数据·运维·数据库·重构·工单系统
档案宝档案管理3 小时前
档案宝:企业合同档案管理的“安全保险箱”与“效率加速器”
大数据·数据库·人工智能·安全·档案·档案管理
wangjialelele3 小时前
mysql库操作二
数据库·mysql
Chloeis Syntax4 小时前
MySQL初阶学习日记(1)--- 数据库的基本操作
数据库·学习·mysql
workflower4 小时前
FDD(Feature Driven Development)特征驱动开发
大数据·数据库·驱动开发·需求分析·个人开发
韩立学长5 小时前
基于Springboot的旧物公益捐赠管理系统3726v22v(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
JH30736 小时前
《Redis 经典应用场景(一):缓存、分布式锁与限流》
redis·分布式·缓存
苦学编程的谢6 小时前
Redis_4_常见命令(完)+认识数据类型和编码方式
数据库·redis·缓存
小坏讲微服务6 小时前
五分钟使用 Docker-compose搭建 Redis 8.0 中间件
运维·redis·docker·中间件·容器·kubernetes·k8s