从运维角度去了解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集群我们日后再接着说

相关推荐
Leo.yuan12 分钟前
数据量大Excel卡顿严重?选对报表工具提高10倍效率
数据库·数据分析·数据可视化·powerbi
Runing_WoNiu21 分钟前
MySQL与Oracle对比及区别
数据库·mysql·oracle
sam-12323 分钟前
k8s上部署redis高可用集群
redis·docker·k8s
天道有情战天下42 分钟前
mysql锁机制详解
数据库·mysql
看山还是山,看水还是。44 分钟前
Redis 配置
运维·数据库·redis·安全·缓存·测试覆盖率
谷新龙0011 小时前
Redis运行时的10大重要指标
数据库·redis·缓存
CodingBrother1 小时前
MySQL 中单列索引与联合索引分析
数据库·mysql
精进攻城狮@1 小时前
Redis缓存雪崩、缓存击穿、缓存穿透
数据库·redis·缓存
小酋仍在学习1 小时前
光驱验证 MD5 校验和
数据库·postgresql
keep__go1 小时前
Linux 批量配置互信
linux·运维·服务器·数据库·shell