redis 备份导出rdb_redis简单安装学习
redis 介绍
Redis是noSql也就是非关系型数据库,可以用来做缓存,缓存就是在内存中存储的数据备份,当数据没有发生本质改变的时候,我们就不让数据的查询去数据库进行操作,而去内存中取数据,这样就大大降低了数据库的读写次数,而且从内存中读数据的速度比去数据库查询要快一些,这样同时又提高了效率。
一、redis单实例搭建
1. 下载redis-5.0.4.tar.gz(最新稳定版本)
2. 解压源码进入目录
3. make
4. make test测试编译情况(可能出现:need tcl >8.4这种情况,解决方法yum install tcl)
5. 安装 make PREFIX=/usr/local/redis install
6. make install之后,redis目录下的bin会有如下几个文件
redis-benchmark 性能测试工具
redis-check-aof 日志文件检测工(比如断电造成日志损坏,可以检测并修复)
redis-check-rdb 快照文件检测工具,效果类上
redis-cli 客户端
redis-server 服务端
![](/assets/blank.gif)
7. 复制配置文件
cp /redis-5.0.4/redis.conf /usr/local/redis
![](/assets/blank.gif)
8. 编辑vim redis.conf
注释掉 bind 127.0.0.1 这个是 设置redis 只接收来自于该 IP 地址的请求,如果不进行设置,那么将处理所有请求。
![](/assets/blank.gif)
将daemonize no 改为yes 让redis 以后台服务形式运行。
![](/assets/blank.gif)
9. ./bin/redis-server redis.conf 启动redis
![](/assets/blank.gif)
./bin/redis-cli 客户端连接
![](/assets/blank.gif)
二、redis的三种集群方式
1. redis主从集群配置
复制 redis.conf 为redis6380.conf
编辑 vim redis6380.conf
将端口改6380 并设置为6379的端口从服务器(原本使用的是slaveof,但因为有人提出slave是奴隶的意思冒犯到了别人就改成看了replicaof)。
![](/assets/blank.gif)
![](/assets/blank.gif)
如果主服务器设置了密码如requirepass yhd123 则yhd123就是服务器密码(这里并没有设置密码),那从服务器就得设置masterauth yhd123,设置从服务器为只读replica-read-only yes。
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
启动redis 服务,用客户端连接6380,输入info ,会发现6380端口的角色role是slave。而6379端口的role是master,并且有一个slave。
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
2. 哨兵主从集群配置
因为主从集群的情况下 如果master突然挂掉,除非手动将slave设置为master,再将其他slave连接到新的master,否则整个集群都不再工作,为了保证在master挂掉的情况下,集群继续工作,需要用到哨兵模式sentinel自动设置master并且slave连接上新master。
配置哨兵。
cp /usr/local/redis-5.0.4/sentinel.conf /usr/locla/redis
编辑 vim sentinel.conf 设置后台服务运行
![](/assets/blank.gif)
当2个sentinel实例都认为master失效时,正式失效。
![](/assets/blank.gif)
![](/assets/blank.gif)
启动./bin/redis-server sentinel.conf --sentinel 如需配置哨兵集群,按以上方式使用多个配置文件监控同一个主节点即可。
三、redis-cluster 多主多从集群配置
编辑 vim redis.conf
![](/assets/blank.gif)
cluster开启必须重命名指定cluster-config-file,不能与别的节点相同,否则会启动失败。
创建6个实列,我这里是3台服务器 2个端口6个实例,然后将每个实例启动会生产节
点nodes-*.conf文件。
![](/assets/blank.gif)
执行命令创建命令redis-cli --cluster create ip:6379 ip:6380 ip1:6379 ip1:6380 ip2:6379 ip2:6380 --cluster-replicas 1
创建多主多从必须有 --cluster-replicas 1 ,不然就是6个master。
用redis客户端连接集群./bin/redis-cli -c输入命令查看集群信息。
查看集群节点cluster nodes,会看到对应master-slave,这样集群就搭建完毕了。任一主节点故障以后,从节点都会变为主节点,如果所有主从节点都故障则集群失效。
![](/assets/blank.gif)
四、备份(持久化)
1. rdb持久化
save 900 1 // 900内,有1条写入,则产生快照
save 300 1000 // 如果300秒内有1000次写入,则产生快照
save 60 10000 // 如果60秒内有10000次写入,则产生快照
(这3个选项都屏蔽,则rdb禁用)
![](/assets/blank.gif)
stop-writes-on-bgsave-error yes // 后台备份进程出错时,主进程停不停止写入?
rdbcompression yes // 导出的rdb文件是否压缩
Rdbchecksum yes // 导入rbd恢复时数据时,要不要检验rdb的完整性
dbfilename dump.rdb //导出来的rdb文件名
dir ./ //rdb的放置路径
![](/assets/blank.gif)
2. aof持久化
appendonly no # 是否打开 aof日志功能
Appendfilename #导出来的aof文件名
![](/assets/blank.gif)
appendfsync always # 每1个命令,都立即同步到aof. 安全,速度慢
appendfsync everysec # 折衷方案,每秒写1次
appendfsync no # 写入工作交给操作系统,由操作系统判断缓冲区大小,统一写入到aof. 同步频率低,速度快
![](/assets/blank.gif)
no-appendfsync-on-rewrite no: # 正在导出rdb快照的过程中,要不要停止同步aof
auto-aof-rewrite-percentage 100 #aof文件大小比起上次重写时的大小,增长率100%时,重写
auto-aof-rewrite-min-size 64mb #aof文件,至少超过64M时,重写
![](/assets/blank.gif)
在集群里面只要一启动,只要rdb文件和aof没有丢失便会自动恢复,集群里面设置的备份方式为主aof 从 rdb+aof 。
五、运维
1. 在dump rdb过程中,aof如果停止同步,所有的操作缓存在内存的队列里, dump完成后,统一操作。
2. aof重写是指把内存中的数据,逆化成命令,写入到.aof日志里.以解决 aof日志过大的问题。
3. 如果rdb文件,和aof文件都存在,优先用aof来恢复数据。
4. 恢复时rdb快,因为其是数据的内存映射,直接载入到内存,而aof是命令,需要逐条执行。
5. 运维的一些命令
BGREWRITEAOF 后台进程重写AOF
BGSAVE 后台保存rdb快照
SAVE 保存rdb快照
LASTSAVE 上次保存时间
Slaveof master-Host port , 把当前实例设为master的slave
Flushall 清空所有库所有键
Flushdb 清空当前库所有键
Showdown 关闭服务器
注: 如果不小心运行了flushall, 立即 shutdown nosave ,关闭服务器
然后手工编辑aof文件,去掉文件中的 “flushall ”相关行,然后开启服务器,就可以导入回原来数据.如果,flushall之后,系统恰好bgrewriteaof了,那么aof就清空了,数据丢失.
Slowlog 显示慢查询
由slowlog-log-slower-than 10000,来指定多慢。(单位是微秒)
由 slowlog-max-len 128 ,来做限制服务器储存多少条慢查询的记录。
Info [Replication/CPU/Memory..]
查看redis服务器的信息
6.Redis运维时需要注意的参数
内存
# Memory
used_memory:859192 数据结构的空间
used_memory_rss:7634944 实占空间
mem_fragmentation_ratio:8.89 前2者的比例,1.N为佳,如果此值过大,说明redis的内存的碎片化严重,可以导出再导入一次.
主从复制
# Replication
role:slave
master_host:192.168.1.128
master_port:6379
master_link_status:up
持久化
# Persistence
rdb_changes_since_last_save:0
rdb_last_save_time:1375224063
fork耗时
#Status
latest_fork_usec:936 上次导出rdb快照,持久化花费微秒
注意: 如果某实例有10G内容,导出需要2分钟,
每分钟写入10000次,导致不断的rdb导出,磁盘始处于高IO状态.
慢日志
config get/set slowlog-log-slower-than
CONFIG get/SET slowlog-max-len
slowlog get N 获取慢日志
运行时更改master-slave
修改一台slave(设为A)为new master
1) 命令该服务不做其他redis服务的slave
命令: slaveof no one
2) 修改其readonly为yes
其他的slave再指向new master A
1) 命令该服务为new master A的slave
命令格式 slaveof IP port
redis 备份导出rdb_redis简单安装学习相关推荐
- redis 备份导出rdb_Redis学习——Redis持久化之RDB备份方式保存数据
从这一个介绍里面知道,redis比memcache作为缓存数据库强大的地方,一个是支持的数据类型比较多,另一个就是redis持久化功能. 下面就介绍Redis的持久化之RDB! 一:什么是redis的 ...
- redis 备份导出rdb_Redis数据迁移利器之redisshake
" 当需要进行Redis实例或集群数据迁移时,我们可以采用导出/导入的方式进行数据迁移,但当需要做数据异地灾备或双活时,再使用传统的方式就不合适了,我们需要借助工具(如redis-port/ ...
- redis 备份导出rdb_Redis持久化知识点—RDB+AOF ,你了解多少
本文主要深入了解RDB和AOF这两种持久化的逻辑和原理,喜欢的朋友欢迎点赞,写得不对的也请大佬多多批评和指正,以期共同进步,谢谢啦. RDB的原理 RDB持久化存储即是将redis存在内存中的数据以快 ...
- Redis之在Linux上安装和简单的使用
一.安装gcc 1.Redis在linux上的安装首先必须先安装gcc,这个是用来编译redis的源文件的.首先需要先切换的到root用户: [cheny@localhost ~]$ su Passw ...
- liunx php redis扩展,CentOS 7下安装php-redis扩展及简单使用
前言: 在本篇文章中,我将给大家介绍如何在CentOS7上安装PHP-Redis扩展以及一些简单的实用,关于如何在Centos上安装redis的,可以参考 想要在php中操作redis,那就必须安装p ...
- 一、Redis入门之——介绍、安装,图形化界面(GUI)工具Redis Desktop Manager (RDM)安装
一.Redis简介 引用官方文档的介绍: Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: ...
- Redis之介绍、下载安装
文章目录 Redis之介绍.下载安装 1.redis介绍 2.redis特征 3.redis优势 4.应用场景 5.下载安装 6.使用 Redis之介绍.下载安装 注:本文基于Windos系统上Red ...
- 第一章 Redis基础(简介+下载和安装+基本操作)----黑马
第一章 Redis基础(简介+下载和安装+基本操作) ----黑马 文章目录 第一章 Redis基础(简介+下载和安装+基本操作) ----黑马 学习目标: 1. Redis 简介 1.1 NoSQL ...
- oracle11g初次使用教程,Oracle11g简单安装和使用教程
这篇文章主要为大家详细介绍了Oracle11g简单安装和使用教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 一.Oracle11g的安装过程(Windows版本)很简单,步骤为: 1. 首先从 ...
最新文章
- Boost源码剖析之:容器赋值-assign
- ZedGraph的曲线的LineItem对象的Tag属性存储信息进而在鼠标悬浮时进行显示
- 独立版Jexus配置SSL,支持https访问
- web框架-Struts开始
- SP2-0734: 未知的命令开头 imp scott/... - 忽略了剩余的行。
- Spring Boot常见应用属性默认值
- linux指令 sed,Linux命令sed
- python r转义_Python快速入门系列之二:还学不会我直播跪搓衣板
- arm Linux 低成本方案,参赛作品《低成本基于ARM+Linux平台搭建web服务器的物联网学习板》...
- 主内存和工作内存交互
- 兰州市智慧城市建设再迈出实质性一步
- 数据结构笔记(九)-- 单链队列
- go语言中错误处理方式
- 软件详细设计文档【转】
- 由一个照片,可以看出云是个物体
- JAVA rs 是否要关闭_关闭结果集rs和statement以后,是否还要关闭数据库连接呢?...
- Redis 管理工具 TreeNMS
- bios error 装系统acpi_win10系统升级后开机提示acpi bios error的解决方法
- iphone苹果手机如何连接电脑进行投屏?
- 如何下载朝阳区卫星地图高清版大图
热门文章
- CSS设置像文字一样的按钮
- 小米6自动重启android,小米6充电重启怎么办 小米6充电自动重启解决方法
- 学python需要记得的单词_学习Python必背的初级单词有哪些?
- python 求连线相似度_Python分析《都挺好》中的人物关系,苏大强与蔡根花是真爱?...
- 这是我的2018年终总结,你的呢?
- 使用Action,Data属性启动系统Activity
- 【Spring注解系列02】@CompentScan与@CompentScans
- 一天搞定CSS: 浮动(float)的副作用--12
- LeetCode精讲题 10正则表达式匹配(动态规划)
- 64匹马8个跑道需要多少轮才能挑选出最快的4匹马?