logo
tt's Note
  • 运维
    • 数据库
    • linux
    • vpn
    • 日志
    • 中间件
    • 服务
    • 监控
    • shell
    • windows
    • 语言
    • 云服务
    • 其他
  • 开发
    • 工具
  • 软件
    • 浏览器
    • 多端
    • win
    • mac
    • 网站
  • 项目
    • 效率工具
    • 兴趣
  • 脚本
    • jenkins
    中间件概览
    haproxy
    kafka
    eclipse-mosquitto
    nginx
    rabbitmq
    redis-shake
    redis
    vector
    zookeeper
    上一页redis-shake下一页vector

    #redis

    #启动

    setup-6379.sh
    redis-cluster.sh
    #!/bin/bash
    
    version=5.0.2
    port=6379
    password='password'
    
    echo 'Asia/Shanghai' > /etc/timezone
    
    docker stop redis-${port}
    docker rm redis-${port}
    docker run --name redis-${port} -d \
    --restart=always \
    --net host \
    -v /etc/sysctl.conf:/etc/sysctl.conf \
    -v /etc/timezone:/etc/timezone:ro \
    -v /etc/localtime:/etc/localtime:ro \
    -v $(pwd)/data-${port}:/data \
    redis:${version} redis-server \
    --bind 0.0.0.0 \
    --port ${port} \
    --requirepass "${password}" \
    --protected-mode no \
    --maxmemory 512M \
    --maxmemory-policy noeviction \
    --maxclients 100000 \
    --appendonly yes \
    --appendfsync everysec \
    --auto-aof-rewrite-percentage 100 \
    --auto-aof-rewrite-min-size 1024M
    
    # aof是2倍触发
    # --auto-aof-rewrite-percentage 100
    # aof文件超过20000mb
    # --auto-aof-rewrite-min-size 20000mb
    # --maxmemory-policy volatile-lru
    # 1、volatile-lru:只对设置了过期时间的key进行LRU(默认值)
    # 2、allkeys-lru : 删除lru算法的key
    # 3、volatile-random:随机删除即将过期key
    # 4、allkeys-random:随机删除
    # 5、volatile-ttl : 删除即将过期的
    # 6、noeviction : 永不过期,返回错误
    
    #!/bin/bash
    
    version=7.4.0
    password=""
    
    echo 'Asia/Shanghai' > /etc/timezone
    
    # 大内存时使用
    # if ! grep -q "vm.overcommit_memory = 1" /etc/sysctl.conf;then echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf && sysctl -p;fi
    
    nodes="
    7000
    7001
    7002
    7003
    7004
    7005
    "
    
    for node in ${nodes};do
    
    port=${node}
    docker stop redis-${port}
    docker rm redis-${port}
    docker run --name redis-${port} -d \
    --restart=always \
    --net host \
    -v /etc/sysctl.conf:/etc/sysctl.conf \
    -v /etc/timezone:/etc/timezone:ro \
    -v /etc/localtime:/etc/localtime:ro \
    -v $(pwd)/data-${port}:/data \
    redis:${version} redis-server \
    --port ${port} \
    --bind 0.0.0.0 \
    --requirepass "${password}" \
    --masterauth "${password}" \
    --protected-mode no \
    --maxmemory 64M \
    --maxmemory-policy noeviction \
    --maxclients 100000 \
    --cluster-enabled yes \
    --cluster-config-file nodes.conf \
    --cluster-node-timeout 5000 \
    --appendonly yes \
    --appendfsync everysec \
    --auto-aof-rewrite-percentage 100 \
    --auto-aof-rewrite-min-size 128M
    
    # aof是2倍触发
    # --auto-aof-rewrite-percentage 100
    # aof文件超过20000mb
    # --auto-aof-rewrite-min-size 20000mb
    
    done
    
    # 官方文档
    # https://redis.io/docs/reference/eviction/
    # 创建集群命令
    # docker exec -it redis-7000 redis-cli --cluster create  --cluster-replicas 1 192.168.1.1:7000 192.168.1.1:7001 192.168.1.1:7002 192.168.1.1:7003 192.168.1.1:7004 192.168.1.1:7005
    # 查看集群状态
    # docker run -it --rm --net host redis:7.4.0 redis-cli -p 7000 --cluster check 192.168.1.1:7000
    # 查看帮助
    # docker run -it --rm --net host redis:7.4.0 redis-cli -p 7000 --cluster help
    # 查询 key,keys/scan 命令只能显示当前节点的数据
    # docker run -it --rm --net host redis:7.4.0 redis-cli -p 7000 --cluster get key1
    Tip

    --cluster-replicas是定义副本数

    #图形化连接工具

    win: RESP

    mac: RESP

    #迁移

    redis-shake