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

相关推荐
一码归一码@9 小时前
Mysql进阶之事务原理
数据库·mysql
老邓计算机毕设17 小时前
SSM学生选课系统xvbna(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·学生选课系统·ssm 框架·高校教学管理
難釋懷17 小时前
SpringDataRedis数据序列化器
redis·缓存
枷锁—sha17 小时前
【PortSwigger Academy】SQL 注入绕过登录 (Login Bypass)
数据库·sql·学习·安全·网络安全
逍遥德19 小时前
PostgreSQL 中唯一约束(UNIQUE CONSTRAINT) 和唯一索引(UNIQUE INDEX) 的核心区别
数据库·sql·postgresql·dba
工业甲酰苯胺19 小时前
字符串分割并展开成表格的SQL实现方法
数据库·sql
科技块儿20 小时前
IP定位技术:游戏反外挂体系中的精准识别引擎
数据库·tcp/ip·游戏
衫水20 小时前
[特殊字符] MySQL 常用指令大全
数据库·mysql·oracle
卓怡学长20 小时前
m115乐购游戏商城系统
java·前端·数据库·spring boot·spring·游戏
小句21 小时前
SQL中JOIN语法详解 GROUP BY语法详解
数据库·sql