发布订阅、redis的配置文件、redis的主从、redis的持久化、

发布订阅

subscribe

订阅一个或者多个频道

publish

给指定的频道发送消息

psubscribe

订阅指定模式的频道,*代表所有

pubsub channels

查看当前活跃的频道

pubsub numsub channels

查看当前频道的订阅人数

redis的配置文件

 bind 127.0.0.1    # 监听的地址
 protected-mode yes # 将redis运行在安全模式下
 port 6379 # 端口
 tcp-backlog 511
 timeout 0
 tcp-keepalive 300
 daemonize no # 是否以守护进程开启
 supervised no
 pidfile /var/run/redis_6379.pid
 loglevel notice
 logfile ""
 databases 16
 always-show-logo yes
 save 900 1  # 在900秒以内有1次更新,就会持久化
 save 300 10
 save 60 10000
 stop-writes-on-bgsave-error yes
 rdbcompression yes
 rdbchecksum yes
 dbfilename dump.rdb   # 数据的保存文件
 dir ./
 replica-serve-stale-data yes
 replica-read-only yes
 repl-diskless-sync no
 repl-diskless-sync-delay 5
 repl-disable-tcp-nodelay no
 replica-priority 100
 lazyfree-lazy-eviction no
 lazyfree-lazy-expire no
 lazyfree-lazy-server-del no
 replica-lazy-flush no
 appendonly no
 appendfilename "appendonly.aof"
 appendfsync everysec
 no-appendfsync-on-rewrite no
 auto-aof-rewrite-percentage 100
 auto-aof-rewrite-min-size 64mb
 aof-load-truncated yes
 aof-use-rdb-preamble yes
 lua-time-limit 5000
 slowlog-log-slower-than 10000
 slowlog-max-len 128
 latency-monitor-threshold 0
 notify-keyspace-events ""
 hash-max-ziplist-entries 512
 hash-max-ziplist-value 64
 list-max-ziplist-size -2
 list-compress-depth 0
 set-max-intset-entries 512
 zset-max-ziplist-entries 128
 zset-max-ziplist-value 64
 hll-sparse-max-bytes 3000
 stream-node-max-bytes 4096
 stream-node-max-entries 100
 activerehashing yes
 client-output-buffer-limit normal 0 0 0
 client-output-buffer-limit replica 256mb 64mb 60
 client-output-buffer-limit pubsub 32mb 8mb 60
 hz 10
 dynamic-hz yes
 aof-rewrite-incremental-fsync yes
 rdb-save-incremental-fsync yes
 requirepass foobared # 给redis设置密码

auth

密码认证

save

保存

flushall

清空所有的数据

redis的主从

 只需要在从服务器上进行配置
 slaveof ip地址 端口
 如果有密码的话
 masterauth <password>
 命令行设置方式
 config set masterauth password
  • 基于异步的,平均每秒钟从服务器都会主服务器发送复制的情况

  • 一个主可以多个从

  • 不止主可以有从服务器,从也可以有从服务器

  • 复制功能不会阻塞主服务器

  • 复制功能也不会阻塞从服务器

redis的持久化

  • rdb

  • aof

rdb

  • 优点

    • 生成二进制文件

    • 系统会默认的多长时间保存一次

    • 直接手动保存

    • 制作快照

    • 可以用作备份

    • 比较适合做灾难恢复

    • 主进程会fork一个子进程出来,子进程用来复制保存数据

  • 缺点

    • 如果说数据需要尽量保存下来,则不适合实用rdb

    • 在数据量庞大的时候,对系统消耗过大

 save 900 1  # 在900秒以内有1次更新,就会持久化
 save 300 10
 save 60 10000
 stop-writes-on-bgsave-error yes
 rdbcompression yes
 rdbchecksum yes
 dbfilename dump.rdb   # 数据的保存文件
 dir ./ # 保存目录

aof

  • 优点

    • 持久化更好

    • aof将所有的操作都追加到一个文件中,redis-check-aof

    • 文件易读

  • 缺点

    • 文件会越来越大

    • aof的速度会比rdb慢,aof 使用的是fsync

    • 文件易读

 appendonly yes
 appendfilename "appendonly.aof"
 appendfsync everysec

直接通过命令从rdb切换到aof

 config set appendonly yes
 config set save ""

redis的高可用

豌豆荚:codis

feckbook:

主观下线:哨兵检测不到服务

客观下线:全部哨兵同一协商

redis cluster

  • 16384个槽位

  • 最少需要6台服务器

准备配置文件

 ## 6380
 bind 127.0.0.1
 port 6380
 daemonize yes
 pidfile 6380.pid
 logfile 6380.log
 cluster-enabled yes
 cluster-config-file node-6380.conf
 cluster-node-timeout 10000
 ## 6381
 bind 127.0.0.1
 port 6381
 daemonize yes
 pidfile 6381.pid
 logfile 6381.log
 cluster-enabled yes
 cluster-config-file node-6381.conf
 cluster-node-timeout 10000
 ## 6382
 bind 127.0.0.1
 port 6382
 daemonize yes
 pidfile 6382.pid
 logfile 6382.log
 cluster-enabled yes
 cluster-config-file node-6382.conf
 cluster-node-timeout 10000
 ## 6383
 bind 127.0.0.1
 port 6383
 daemonize yes
 pidfile 6383.pid
 logfile 6383.log
 cluster-enabled yes
 cluster-config-file node-6383.conf
 cluster-node-timeout 10000
 ## 6384
 bind 127.0.0.1
 port 6384
 daemonize yes
 pidfile 6384.pid
 logfile 6384.log
 cluster-enabled yes
 cluster-config-file node-6384.conf
 cluster-node-timeout 10000
 ## 6385
 bind 127.0.0.1
 port 6385
 daemonize yes
 pidfile 6385.pid
 logfile 6385.log
 cluster-enabled yes
 cluster-config-file node-6385.conf
 cluster-node-timeout 10000

环境准备

安装ruby

版本必须是2.2以上

 wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.4.tar.gz
 tar ruby-2.6.4.tar.gz
 cd ruby-2.6.4
 ./configure --prefix=/opt/ruby
 make && make install
 vim /etc/profile.d/ruby.sh
 配置环境变量
 PATH=/opt/ruby/bin:$PATH
 source /etc/profile.d/ruby.sh

安装ruby依赖

 gem install redis

安装命令

 ./src/redis-cli --cluster help
 ./src/redis-cli --cluster create --cluster-replicas 1 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385
 create 创建集群
 check 检查集群
 info 查看集群信息
 fix 修复集群
 ./src/redis-server /redis.redis6380.conf

连接命令

 redis-cli -c -p 6380

import redis

r = redis.StrictRedis(host='192.168.158.131', password="", decode_responses=True)

r=redis.Redis()# 向后兼容老版本

r.set("haoeya", "kuaixiake") print(r.keys())

posted @ 2020-03-05 15:06  干it的小张  阅读(474)  评论(0编辑  收藏  举报