redis-高级(事务,频道发布,消息订阅,持久化,主从复制,运维监控....)

================事务==================
mutil:开启事务,存储在队列里
discard:取消命令
exec:执行
mutil后面的语句,可能出现2个错误
1:语法问题,
2:语法没错,适用对象有问题
并发问题:
乐观锁:监听
悲观锁:使用时就开启锁,别人用不了
redis使用的是乐观锁
watch key1[key2…keyn]:监听key1,key2有没有变化,如果有变化则事务取消
unwatch :取消所有watch监听
执行顺序
wtach key1
mutil
exec/discard
unwatch

=========频道发布,消息订阅============
publish 频道 内容:频道发布,返回值为监听个数
subscribe 频道:订阅频道
psubscribe pattern:一次性监听满足条件的频道 (news*会监听所有news开头的频道)
pubsub channels [pattern]:列出当前活动频道, 一个活动频道是指,又发布有订阅。没设置pattern,显示所有

运维层面
=============持久化的方式=============
常见的持久化方式
主从:通过从服务器保存和持久化,如mongoDB的replication sets配置,主服务器就是从内存上面写,保存到从服务器上。
日志:通过生成相关日志,并通过日志来恢复数据
couchDB对于数据内容不修改,只追加,则文件本身就是日志,不会丢失数据

redis持久化方式
一):rdb快照持久化
工作原理
每隔[N分钟]或[N次]写操作后,从内存dump数据形成rdb文件[压缩]放在[备份目录],
[]里面的内容可以配置
redis.conf配置文件里面有
三个选项注释的话,将不会导出文件
save 900 1:900秒修改超过1次,自动备份
save 300 10:300秒修改超过10次,自动备份
save 60 10000:60秒修改10000次,自动备份

stop-writers-on-bgsave-error yes:导出过程出错,停止写入。
rdbcompression yes:压缩rdb导出文件
rdbchecksum yes:导入rdb文件时检测文件是否出错
缺陷:
在2个保存点之间断电,将会丢失1-N分钟的数据
也就是说60秒之内我保存了1W条数据,他会自动导出,然后我在保存1条数据,则不会保存。没触发里面的条件
优点:写入快

二:aof(日志)
conf配置
appendonly no:是否打开aof日志功能,默认关闭
appendfsync everysec:折中方案,每秒写一次
appendfsync always:每一个命令都立即同步到aof,安全,速度慢
appendfsync no:写入工作交给操作系统,由操作系统判断你缓冲区大小统一写到aof,同步频率低,速度快
no-appendfsync-on-rewrite yes:正在导出rdb快照的过程中,要不要停止同步aof,停止,节约io。所有的aof都会存储在队列里,等rdb执行完,在执行aof。所以数据不会丢失
auto-aof-rewrite-percentage :aof文件比起上次重写时的大小,增长率100%重写
auto-aof-rewrite-min-size 64mb:aof文件至少超过64M重写

在dump rdb过程中,aof如果停止同步,会不会丢失数据?
不会,所有的操作缓存在内存的队列里,dump完成后,同意操作
aof重写时指什么?
指的是把内存中的数据,逆化成命令写入到aof日志里,解决zof日志过大问题。实际上就是多次操作同一个数据,都会被记录下来,这样的话,浪费空间,重写就是把最终的结果转换为1个命令。
恢复是,rdb和aof那个恢复快?
rdb快,因为其实数据的内存映射,而aof是命令,需要逐条执行
可以同时使用,并且推荐这样用。
aof和rdb同时存在,会优先采用aof读取
配置文件中开启aof,会生成一个空文件,如果rdb没有先读取,会优先读取aof,所以会导致没有内容。

===========主从复制(集群)=========
集群作用
1:主从备份,防止主机关闭
2:读写分离,分担master的任务
3:任务分离,如从服分别分担备份工作和计算工作

使用slave做rdb写入工作,
1:主配置文件关闭rdb开启信息,aof可关闭可不关闭(因为主服务器同步时间比从服务器即时,如果主服务器开启了,则要关闭从服务器aof,避免反复读写)
2:从配置文件开启slave服务(slaveof localhost 6379),并配置端口为主服务器端口
3:从服务器配置开启rdb,并关闭aof
4:从服务器配置slave-read-only为只读,保证数据一致。
4:从服务器配置跟主服务器不重复端口,以及pidfile文件名字,还有rdb文件名字
5:配置密码,如果master有密码
主配置文件equirepass 密码:配置密码
从配置文件masterauth 密码:配置密码
客户端连接客户端口,auth 密码

redis-cli -p 指定从的端口就开启slave
缺陷:每次slave断开后,无论任意情况,在连接master,
都要master全部dump出来,在aof,即同步的过程都要重新执行一遍,
多台slave不要一起启动,否则master可能io剧增

====================运维===============
客户端命令
time:显示服务器时间,时间戳(秒),微秒数
dbsize:当前数据库key数量
bgrewriteaof:手动重写aof
save:手动保存rdb
bgsave:手动保存rdb,后台重启进程保存
lastsave :上次保存rdb时间
flushdb:清空当前db
flushall:清空所有db
showdown [save/nosave]:关闭服务器,保存|不保存,默认保存后重写aof
info [statu][fork][…]:显示信息
memory
used_memory:XXX 数据结构的空间
used_memory_rss:实占空间
mem_fragmentation_ratio:前2者的比例,1为最佳,如果值过大,说明redis的内存碎片化严重,可以在导出再导入一次
主从复制
role:slave
master_host
master_port
mester_link_status:up
持久化
rdb_changes_since_last_save:0 上次保存后到现在有几个改动
rdb_last_save_time:上次保存时间
status
latest_fork_usec:导入导出多少微秒
config get requirepass:获取是否有密码
config get slowlog-log-slower-then:获取慢日志信息,大于多少秒记下来
config set slowlog-log-slower-then 微秒:设置慢日志时间
config get slowlog-max-len :获取存储多少条慢查询的记录
slowlog get [count]:获取慢日志
slowlog-log-slower-then 微秒:设置慢日志时间
slaveof master-Host port:把当前实例设为master的slave

===============aof恢复与服务器间迁移===================
如果运行了flushall,立即showdown nosave关闭服务器,然后手工编辑aof文件,去掉文件中的flushall相关(3行一对)行,然后开启服务器就可以导回原来数据
或者,aof改名字,让系统找不到,让他读取rdb即可

复制一份rdb文件,名字改为另一个redis服务器引用,即可。
复制rdb文件时要保证调用rdb的进程关闭,否则另一个redis应用失败(因为2个rdb处在同一句柄)。
aof也同理

==================运维监控===========
master down之后
一:手工配置
1:指定任意一台slave设置slaveof no one,表示角色更换为master
2:设置slave-read-only no:表示可写
3:其他slave,新的master
设置:slaveof IP地址 端口
二:使用sentinel监控主服务器
1:cp 源代码目录下sentinel.conf 到redis目录
2:sentinel.conf配置信息
sentinel monitor 定义的名字 ip 端口 次数 :监视那个地址,一定的失效次数没有连接上,确定失效
sentinel auth-pass 名字跟上面定义的名字一致 012_345:设置密码
sentinel down-after-milliseconds 名字同上 30000:30秒没有连接上,失效次数增加1
sentinel can-failover 名字同上 yes:是否允许故障转移(slave更改为master),建议只有一台设置为yes,因为监控的sentinel多了之后,配置的yes也多了之后,会导致一台服务器失效后,一起修改。
sentinel parallel-syncs 名字 数量:当master死机时候,指定新的master时,指定一定的数量slave启动连接,防止masterio剧增
sentinel failover-timeout 名字 时间:超过时间没有完成设置,监控失败。
3:开启
./bin/redis-server –help,开启server帮助
开启哨兵模式
./bin/redis-server ./sentinel.conf –sentinel &
4:master死机后,哨兵随机指定新的master,手动配置
每一个redis.conf里面配置slave-priority优先级,数字越小越靠前,也就是越有限指定为master

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: another-redis-desktop-manager 是一个 Redis 数据库管理工具,版本号为 1.6.0。Redis 是一个内存数据库,常用于数据缓存、任务队列和排行榜等场景。该软件可以让用户更方便地管理 Redis 数据库。 another-redis-desktop-manager 具有直观的图形用户界面,使用户可以轻松地连接到 Redis 数据库并执行各种操作。它提供了各种功能,包括查看和编辑 Redis 数据的能力、执行命令、查看服务器和客户端信息、监控 Redis 的性能指标等。 该软件支持密钥和值的搜索、过滤和排序,使用户可以更快地找到并操作所需的数据。另外,它还提供了多标签功能,允许用户在不同的 Redis 数据库之间轻松切换和管理。 除了基本的数据操作功能,another-redis-desktop-manager 还支持将 Redis 数据库导出为 JSON、CSV 和 SQL 文件,以便用户可以方便地备份和迁移数据。它还允许用户进行数据的导入,以满足不同的需求。 总之,another-redis-desktop-manager 是一个强大且易于使用的 Redis 数据库管理工具,它提供了丰富的功能和直观的界面,可帮助用户更高效地管理和操作 Redis 数据库。用户可以通过下载并安装该软件,轻松地管理他们的 Redis 数据。 ### 回答2: another-redis-desktop-manager是一个开源的跨平台Redis桌面管理工具,版本号为1.6.0。Redis是一个开源的高性能key-value数据库,广泛用于缓存、消息队列和持久化等场景。another-redis-desktop-manager提供了一个用户友好的图形界面,方便用户查看、管理和操作Redis数据库。 another-redis-desktop-manager的1.6.0版本带来了一些改进和升级。其中包括用户界面的改进,让用户更轻松地浏览和管理Redis数据库。此外,改进了性能和稳定性,提供了更快、更可靠的数据库操作体验。 该工具提供了一些功能,如连接到远程或本地Redis服务器,浏览和搜索键值对,执行常见的Redis操作(如添加、编辑和删除键),查看和分析数据库统计信息等。还可以支持多个Redis实例,并方便地在它们之间切换。 使用another-redis-desktop-manager可以大大简化Redis数据库管理的工作,无需使用命令行或编写复杂的脚本。它具有友好的用户界面和丰富的功能,适用于开发人员、运维人员和其他需要与Redis进行交互的用户。 总之,another-redis-desktop-manager是一个方便实用的Redis桌面管理工具,1.6.0版本带来了更好的性能和用户体验,适合用于管理和操作Redis数据库。 ### 回答3: another-redis-desktop-manager.1.6.0.exe是另一种Redis桌面管理器的安装文件。Redis是一种开源的高性能键值对存储数据库,用于快速处理数据,支持主从复制持久化、集群等功能。Redis桌面管理器是一个可视化工具,用于管理和监控Redis数据库。 another-redis-desktop-manager.1.6.0.exe是该管理器的1.6.0版本的安装程序。通过安装该程序,用户可以在桌面环境中方便地管理Redis数据库,而无需手动使用Redis命令行工具。 该桌面管理器提供了直观的用户界面,使用户能够轻松执行常见的Redis操作,如查看和编辑键值对、执行命令、监视服务器状态、管理数据库等。它还提供了一个实时监控面板,用于显示Redis服务器的性能指标,如内存使用情况、并发连接数等,帮助用户更好地了解数据库的运行状况。 此外,该管理器支持多个Redis实例的管理,用户可以轻松切换和管理多个数据库。它还提供了一些高级功能,如备份和恢复数据、导入和导出数据、设置键的过期时间等。 总之,another-redis-desktop-manager.1.6.0.exe是一个方便易用的Redis桌面管理器,它提供了可视化的界面和丰富的功能,帮助用户更轻松地管理和监控Redis数据库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值