编辑
2023-05-08
环境部署
00

redis cluster

原理

redis-cluster 把所有的物理节点(redis master)映射到(0-16383)slot 上, cluster负责维护节点node,每个节点都会有一定范围的slot。比如node1 0-5000,node2 5001-10000,node3 100000-16383 。

node <---> slot <---> value

CRC16算法: 因为每次都会先把key 做 crc,所以客户端可以连接任意集群中master节点,起到内存总量和请求数提高

1,对集群模式下的所有key进行crc16计算,计算的结果始终在0-16383之间

2,对客户端的key进行crc16计算时,同一个key多次经过crc16计算结果始终一致

3,对客户端的不同key进行crc16计算,计算的结果会出现 不同的key 结果可能一致。 比如key name 和 cc 经过crc后可能结果相同。

安装
shell
cd /usr/local/src/ wget http://download.redis.io/releases/redis-6.2.6.tar.gz tar zxvf redis-6.2.6.tar.gz yum install -y gcc automake make cd redis-6.2.6 && make && make install cp ./src/redis-server /usr/bin/ cp ./src/redis-cli /usr/bin/ 若 cp ./src/redis-cli /usr/bin/ 出现如下错误: cp: not writing through dangling symlink ‘/usr/bin/redis-cli’ 这个错误表示目标 /usr/bin/redis-cli 已经存在并且是一个悬空的符号链接(即指向一个不存在的文件)。这可能是由于之前的安装或配置过程中创建了一个错误的符号链接。 要解决这个问题,您可以先删除旧的符号链接,然后重新执行复制命令。请执行以下命令: sudo rm /usr/bin/redis-cli sudo cp ./src/redis-cli /usr/bin/ 这将删除悬空的符号链接并将 redis-cli 复制到 /usr/bin/ 目录下现在,您应该能够在任何位置使用 redis-cli 命令了。
创建服务启停脚本
shell
cp ./utils/redis_init_script /etc/init.d/redisd service redisd start
编辑
2023-05-06
环境部署
00
注:需要Redis3.2+

C:\shixun\Redis-x64-5.0.14.1

操作步骤:

1, 找到压缩包解压位置,两个配置文件,修改下配置密码:

shell
requirepass 123456

image.png

2,安装redis服务(如果已安装则先卸载)

A. 安装指令:

shell
redis-server.exe --service-install redis.windows.conf

image.png

B. 卸载指令:

shell
redis-server.exe --service-uninstall
编辑
2023-04-27
摘录
00

redissyncer简介

RedisSyncer是京东云自研的redis多任务同步中间件工具集,应用于redis单实例及集群同步。该工具集包括:

redis 同步服务引擎 redissyncer-server redissycner 客户端 redissyncer-cli redis 数据校验工具 redissycner-compare 基于docker-compse的一体化部署方案 redissyncer 目前在github开源:

url
https://github.com/TraceNature/redissyncer-server

1. 缓存同步

缓存同步的定义及必要性

  • 双向同步是指在两个实例都有存量数据和写流量的情况下进行两实例同步,最终达到两实例数据动态一致的过程
  • 缓存数据全局可读,防止缓存击穿
  • 保证缓存命中率,为数据库减压
  • 当单一数据中心发生故障时,保证数据在另一中心完全可见

2. 双向同步

双向同步的操作难度与冷启动问题

  • 原生redis同步无法区分缓存数据来源
  • 由于redis本身没有实例标识(类似mysql的GTID),在双向同步时形成数据回环
  • redis环状缓冲区覆盖后,数据混淆且难于清理