vieyahn2017 / iBlog

44 stars 0 forks source link

11.27 Redis学习 #328

Closed vieyahn2017 closed 4 years ago

vieyahn2017 commented 4 years ago

Redis

vieyahn2017 commented 4 years ago

https://github.com/huangz1990/redis 《Redis Command Reference》全文的中文翻译版。 http://RedisDoc.com

https://github.com/huangz1990/redis-3.0-annotated 带有详细注释的 Redis 3.0 代码(annotated Redis 3.0 source code)。

vieyahn2017 commented 4 years ago

https://github.com/CodisLabs/codis/blob/release3.2/doc/tutorial_zh.md Codis 使用文档 Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有显著区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 Redis 服务。

redis-port 使用的两个例子 redis-port 最初是 codis 项目的附属工具,同步 redis 数据到 codis 中,现在已经拆出来单独维护。

vieyahn2017 commented 4 years ago

Redis RDB Dump File Format https://github.com/sripathikrishnan/redis-rdb-tools/wiki/Redis-RDB-Dump-File-Format

https://github.com/sripathikrishnan/redis-rdb-tools Parse Redis dump.rdb files, Analyze Memory, and Export Data to JSON

Command line usage examples Every run of RDB Tool requires to specify a command to indicate what should be done with the parsed RDB data. Valid commands are: json, diff, justkeys, justkeyvals and protocol.

JSON from a two database dump:

> rdb --command json /var/redis/6379/dump.rdb

[{
"user003":{"fname":"Ron","sname":"Bumquist"},
"lizards":["Bush anole","Jackson's chameleon","Komodo dragon","Ground agama","Bearded dragon"],
"user001":{"fname":"Raoul","sname":"Duke"},
"user002":{"fname":"Gonzo","sname":"Dr"},
"user_list":["user003","user002","user001"]},{
"baloon":{"helium":"birthdays","medical":"angioplasty","weather":"meteorology"},
"armadillo":["chacoan naked-tailed","giant","Andean hairy","nine-banded","pink fairy"],
"aroma":{"pungent":"vinegar","putrid":"rotten eggs","floral":"roses"}}]

Filter parsed output
Only process keys that match the regex, and only print key and values:

> rdb --command justkeyvals --key "user.*" /var/redis/6379/dump.rdb

user003 fname Ron,sname Bumquist,
user001 fname Raoul,sname Duke,
user002 fname Gonzo,sname Dr,
user_list user003,user002,user001
vieyahn2017 commented 4 years ago

https://github.com/alibaba/RedisShake Redis-shake is a tool for synchronizing data between two redis databases. Redis-shake是一个用于在两个redis之间同步数据的工具,满足用户非常灵活的同步、迁移需求。

redis-shake是阿里云Redis&MongoDB团队开源的用于redis数据同步的工具。下载地址:这里。

基本功能 redis-shake是我们基于redis-port基础上进行改进的一款产品。它支持解析、恢复、备份、同步四个功能。以下主要介绍同步sync。

恢复restore:将RDB文件恢复到目的redis数据库。 备份dump:将源redis的全量数据通过RDB文件备份起来。 解析decode:对RDB文件进行读取,并以json格式解析存储。 同步sync:支持源redis和目的redis的数据同步,支持全量和增量数据的迁移,支持从云下到阿里云云上的同步,也支持云下到云下不同环境的同步,支持单节点、主从版、集群版之间的互相同步。需要注意的是,如果源端是集群版,可以启动一个RedisShake,从不同的db结点进行

vieyahn2017 commented 4 years ago

通过gdb来调试和观察redis源码的运行 https://blog.csdn.net/zg_hover/article/details/82490587

监控redis命令--monitor--redis调试 https://yq.aliyun.com/articles/316485