从运维角度去了解redis

一、介绍

1.简介

redis是一个开源的、使用C语言编写的、可基于内存也可持久化的Key-Value数据库,采用单线程基于epoll模型实现IO多路复用非阻塞的处理模式。

2.特点

1.丰富的数据结构  -----Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)等数据结构的存储
2.支持持久化
3.支持主从、集群、哨兵
4.性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s。
5.pub/sub模式的发布、订阅消息队列服务器

二、安装Redis

1.安装单机版Redis

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启动

#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.数据持久化(把数据保存到可永久保存的存储设备中 )

redis提供了两种持久化方式(RDB和AOF)
1.RDB是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上
特点:
(1).周期性
(2).不影响数据写入
(3).高效
(4).完整性较差
2.AOF是换了一个角度来实现持久化,那就是将redis执行过的所有写指令记录下来,在下次redis重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了
特点:
(1).实时性
(2).完整性较好
(3).体积大
如何选择持久化方式?
缓存:不用开启任何持久方式
双开:因RDB数据不实时,但同时使用两者时服务器只会找AOF文件,所以RDB留作万一的手段。
官方的建议是两个同时使用。这样可以提供更可靠的持久化方案。
写入速度快 ------------AOF
写入速度慢 ------------RDB

持久化配置

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数据库备份与恢复

做备份机器的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
迁移的机器上备份数据:
[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
恢复数据的机器:
修改redis.conf配置文件
#vim /usr/local/redis/redis.conf
dbfilename dump.rdb
./data
迁移机器将备份数据远程传输到恢复机器
[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集群我们日后再接着说

相关推荐

  1. 角度了解redis

    2023-12-12 10:32:05       40 阅读
  2. redis

    2023-12-12 10:32:05       13 阅读
  3. redis篇下篇

    2023-12-12 10:32:05       11 阅读
  4. 面试角度了解前端基础知识体系

    2023-12-12 10:32:05       5 阅读
  5. 】docker-compose部署redis

    2023-12-12 10:32:05       13 阅读
  6. redis篇上篇

    2023-12-12 10:32:05       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-12 10:32:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-12 10:32:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-12 10:32:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-12 10:32:05       20 阅读

热门阅读

  1. 原型 / 构造函数 / 实例

    2023-12-12 10:32:05       37 阅读
  2. 原型链是什么

    2023-12-12 10:32:05       35 阅读
  3. Python高级算法——回溯法(Backtracking)

    2023-12-12 10:32:05       34 阅读
  4. 微信小程序实现图片上传到服务器

    2023-12-12 10:32:05       40 阅读
  5. CentOS修改SSH端口号和禁止root用户直接登录

    2023-12-12 10:32:05       44 阅读
  6. 构建自定义领域知识图谱的简易方法(Python)

    2023-12-12 10:32:05       40 阅读
  7. vue3+TypeScript自定义指令:长按触发绑定的函数

    2023-12-12 10:32:05       40 阅读
  8. C语言中常用的库函数和头文件

    2023-12-12 10:32:05       38 阅读
  9. 微信小程序九宫格布局,轮播图

    2023-12-12 10:32:05       47 阅读