Zhi@Li
努力学习做一个纯粹的人,不拘于形,不羞于色,不束于言,不畏于心。
展开
-
Redis Sentinel集群管理手册
Redis从2.8.4版本开始为SENTINEL命令新添加了一组子命令,可以在线地修改Sentinel对于被监视主服务器的配置选项,并把修改之后的配置选项保存到配置文件中,整个过程不需要停止Sentinel,也不需要手动修改配置文件。redis-cli工具的–stat选项可以实时获取Redis的重要统计信息,尤其对一些增量的数据,如blocked、requests,这对于Redis的运维非常有帮助。由于monitor命令对Redis的CPU、内存、网络资源均有一定的占用,不建议运维使用。原创 2022-09-16 21:11:16 · 554 阅读 · 0 评论 -
Redis 数据迁移篇之move、dump、migrate、redis-rdb-tools和redis-dump工具使用手册
move命令用于在Redis内部进行数据迁移,Redis内部可以有多个数据库,彼此在数据上是相互隔离的,move key db就是把指定的键从源数据库移动到目标数据库中。migrate命令也是用于在Redis实例间进行数据迁移的,实际上migrate命令就是将dump、restore、del三个命令进行组合,从而简化了操作流程。Centos默认支持ruby到2.0.0,可gem 安装redis需要最低是2.3.0,解决办法是 先安装rvm,再把ruby版本提升至2.3.0。原创 2022-09-16 21:10:25 · 496 阅读 · 0 评论 -
Redis 数据迁移篇之redis-shake工具使用手册
支持源redis和目的redis的数据同步,支持全量和增量数据的迁移,支持从云下到阿里云云上的同步,也支持云下到云下不同环境的同步,支持单节点、主从版、集群版之间的互相同步。redis-full-check对比的方向是单向:抓取源库A的数据,然后检测是否位于B中,反向不会检测,也就是说,它检测的是源库是否是目的库的子集。同步rump:支持源redis和目的redis的数据同步,仅支持全量的迁移。Redis-shake 是一个用于在两个 redis之 间同步数据的工具,满足用户非常灵活的同步、迁移需求。原创 2022-09-16 21:06:54 · 929 阅读 · 1 评论 -
Redis 数据迁移篇之redis-migrate-tool工具使用手册
Redis-Migrate-Tool(都简称RMT),是唯品会开源的redis数据迁移工具,主要用于异构redis集群间的数据在线迁移,即数据迁移过程中源集群仍可以正常接受业务读写请求,无业务中断服务时间。2)twemproxy到twemproxy/cluster迁移。1)单个redis到twemproxy/cluster迁移。3)cluster到twmeproxy/cluster迁移。支持下面几种异构集群之间的数据迁移和同构集群扩容/缩容。原创 2022-09-16 21:04:13 · 543 阅读 · 0 评论 -
Redis 备份恢复(持久化)手册
为了解决上述问题,Redis向用户提供了持久化功能,这一功能可以把内存中存储的数据以文件形式存储到硬盘上。为了满足不同的持久化需求,Redis提供了RDB持久化、AOF持久化和RDB-AOF混合持久化等多种持久化方式以供用户选择。Redis与传统数据库的一个主要区别在于,Redis把所有数据都存储在内存中,而传统数据库通常只会把数据的索引存储在内存中,并将实际的数据存储在硬盘中。服务器在停机之后,只要重新执行AOF文件中保存的Redis命令,就可以将数据库恢复至停机之前的状态。原创 2022-09-16 20:58:58 · 363 阅读 · 0 评论 -
Redis 阻塞管理
对于开启Transparent HugePages的操作系统,每次写命令引起的复制内存页单位由4K变为2MB,放大了512倍,会拖慢写操作的执行时间,导致大量写操作慢查询。例如简单的info命令也会出现在慢查询中。连接溢出:这是指操作系统或者Redis客户端在连接时的问题,可能是操作系统的进程限制(即操作系统的最大文件数的限制,通过ulimit -n可以查看)、Redis的backlog队列溢出(如果Redis用于高并发场景为了防止缓慢连接占用,可适当增大这个设置,但必须大于操作系统允许值才能生效)。原创 2022-09-16 20:57:39 · 238 阅读 · 0 评论 -
Redis 内存管理
当used_memory_rss >> used_memory时,较大的差异可能意味着存在(外部)内存碎片,可以通过检查allocator_frag_ratio、allocator_frag_bytes来评估。以下版本可以选择重启Redis服务器释放内存碎片,重启Redis服务器可以让额外产生的内存碎片失效并重新作为新内存来使用,使操作系统恢复高效的内存管理。说明Redis消耗了实际需要物理内存的150%以上,其中50%是内存碎片率,可能是操作系统或Redis实例中内存管理变差的表现。原创 2022-09-16 20:57:02 · 411 阅读 · 0 评论 -
Redis hot key管理
其核心就是在每次对key进行读写访问时,更新LFU的24 bits域代表的访问时间和counter,这样每个key就可以获得正确的LFU值。在某个Key接收到的访问次数、显著高于其它Key时,可以将其称之为热Key,即hot key。同bigkey一样,hot key也会带来一系列问题,如拖慢Redis性能、造成Redis集群节点间负载不均衡、大量请求造成Redis缓存击穿等。热key分析是对于主节点的分析,在进行分析时,客户访问性能会略有影响(不高于10%)。原创 2022-09-16 20:55:28 · 495 阅读 · 0 评论 -
Redis bigkey管理
Redis本身提供发现大对象的工具,redis-cli采用–bigkeys选项来查找最大的键和每种类型的键的平均大小。起提供了UNLINK命令,该命令能够以非阻塞的方式缓慢逐步的清理传入的Key,通过UNLINK,可以安全的删除大Key甚至特大Key。当删除 String 类型的 key,时间复杂度是 O(1) ,建议不要存储过大的数据,否则在删除时也会有性能问题。命令直接删除单个集合类型的KEY,因为其命令的时间复杂度是O(M),其中M是集合类型Key包含的元素个数。原创 2022-09-16 20:54:56 · 294 阅读 · 0 评论 -
Redis slowlog管理手册
slowlog-log-slower-than就是那个预设阀值,它的单位是微秒(1秒=1000毫秒=1000000微秒),默认值是10000,假如执行了一条“很慢”的命令(例如keys\),如果它的执行时间超过了10000微秒,那么它将被记录在慢查询日志中。由于慢查询日志是一个先进先出的队列,也就是说如果慢查询比较多的情况下,可能会丢失部分慢查询命令,为了防止这种情况发生,可以定期执行slow get命令将慢查询日志持久化到其他存储中(例如MySQL),然后可以制作可视化界面进行查询。原创 2022-09-15 21:55:38 · 114 阅读 · 0 评论 -
Redis 连接管理手册
可通过CLIENT KILL addr:port命令或CLIENT KILL ADDR ip:port命令kill单个会话,addr:port或ip:port匹配client list中的addr指标的值。由于 Redis 的单线程特性,无法在执行命令时终止客户端连接。从客户端的角度来看,连接永远不会在执行命令的过程中关闭。但是,只有在发送下一条命令时,客户端才会注意到连接已关闭(并导致网络错误)。原创 2022-09-15 21:51:26 · 153 阅读 · 0 评论 -
Redis 权限管理手册
某些规则只是单个单词,用于激活或删除标志,或对用户 ACL 执行给定的更改。其他规则是与命令或类别名称或键模式等连接的字符前缀。通过一个个的指定命令设置用户ACL比较繁琐,这里可以通过命令类别进行实现,ACL类别对于创建一次包含或排除大量命令的ACL规则非常有用,而无需指定每个命令。off: 禁用用户,不允许使用此用户进行身份验证,但是已经过身份验证的连接仍然有效。,无论默认用户配置如何,则新连接将不通过身份验证启动,并且将要求用户发送带有 AUTH 选项的。on:启用用户,允许使用该用户进行身份验证。原创 2022-09-15 21:50:27 · 449 阅读 · 0 评论 -
Redis 用户管理手册
以下是有效 ACL 规则的列表。ACL SETUSER会创建具有指定ACL规则的用户或修改现有用户的ACL规则。如果用户名不存在,则该命令创建没有任何权限的用户名,然后从左到右读取所有规则,将用户ACL规则设置为指定的规则;为保障与旧版本的Redis的兼容,Redis 6有一个默认配置,默认配置会对默认用户的新连接进行身份验证,即每个新连接都能够调用所有命令并访问每个键,因此ACL功能向后兼容旧版本客户端和应用程序。off: 禁用用户,不允许使用此用户进行身份验证,但是已经过身份验证的连接仍然有效。原创 2022-09-15 21:49:37 · 1179 阅读 · 0 评论 -
Redis 实例启停和连接手册
Redis 6.0以后的版本若未启用ACL(Access Control List访问控制列表),可采用如上的常规方式登录(缺省采用default用户登录,可向低版本兼容认证)。 Redis数据库安装完毕后,通过下面命令来进行启动或者关闭,日常工作中务必按照正常的方法启动关闭redis数据库,避免出现异常报错。原创 2022-09-15 21:48:47 · 205 阅读 · 0 评论 -
Redis Twemproxy 集群规范部署手册
从 ubuntu 6.10 开始,ubuntu 就将先前默认的bash shell 更换成了dash shell;其表现为 /bin/sh 链接倒了/bin/dash而不是传统的/bin/bash。需执行dpkg-reconfigure dash,选择NO,即将默认的shell改回bash。: net.ipv4.tcp_tw_reuse设置为1表示开启重用,允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭。原创 2022-09-15 21:45:15 · 345 阅读 · 0 评论 -
Redis Codis 集群规范部署手册
客户端连接Redis代理服务,处理客户端请求,codis-proxy本身实现了Redis协议,因此客户端访问Codis Proxy跟访问原生的Redis没什么区别。原创 2022-09-15 21:43:56 · 546 阅读 · 0 评论 -
Redis Cluster 集群规范部署手册
若是Ubuntu系统,则通过此种方式部署ruby环境,安装ruby:apt-get update apt-get install ruby-full -y 安装rubygem redis依赖:gem install redis。: 若是Redis 5.x及以上版本,可采用redis-cli工具部署,因为Redis 5.x及以上版本彻底抛弃了ruby,将集群管理功能集成到了redis-cli工具中,创建语法同redis-trib。通过redis-trib检查集群状态。原创 2022-09-15 21:42:26 · 104 阅读 · 0 评论 -
Redis Sentinel集群规范部署手册
若搭建Redis Cluster,需要额外添加参数cluster-enabled yes、cluster-require-full-coverage no、cluster-config-file nodes-2001.conf等。: net.ipv4.tcp_tw_reuse设置为1表示开启重用,允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭。获取监视同一主服务器的其他所有Sentinel的相关信息。原创 2022-09-15 21:41:19 · 102 阅读 · 0 评论 -
Redis 规范部署手册
若搭建Redis Cluster,需要额外添加参数cluster-enabled yes、cluster-require-full-coverage no、cluster-config-file nodes-6379.conf等。: net.ipv4.tcp_tw_reuse设置为1表示开启重用,允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭。: 若Redis版本为Redis 5.x及以上版本时,可不需要安装ruby。编辑profile配置文件。原创 2022-09-15 21:39:31 · 261 阅读 · 0 评论