Centos7 は Redis スタンドアロン、マスター/スレーブ、センチネル、クラスター プラクティスをインストールします

1. 単一マシンのインストール手順の記録:

​
1、yum install wget

2、cd ~

3、mkdir /data/software(可创建其他目录)

4、cd /data/software

5、wget https://download.redis.io/releases/redis-6.2.6.tar.gz

6、tar xf redis-6.2.6.tar.gz

7、cd redis-6.2.6

8、vi README.md(查看README提供具体安装方法)

9、make

---yum install gcc

---make distclean

10、make

11、cd src

--- 可以看到生成了可执行程序

12、cd ..

13、指定安装路径(一般放在/usr/local/redis)

make install PREFIX=/usr/local/redis

启动测试:cd /usr/local/redis/bin

./redis-server(此时只是控制台启动,不是后台启动)

14、把源文件配置文件复制到/usr/local/redis/bin

cp /data/software/redis-6.2.6/redis.conf /usr/local/redis/bin

cd /usr/local/redis/bin

vi redis.conf修改配置文件属性daemonize

daemonize no -> daemonize yes

后台启动测试:./redis-server redis.conf

开启远程连接:找到bind 127.0.0.1 -::1,并注释掉

启用密码: 找到# requirepass foobared,把注释去掉foobared修改为自己的密码

requirepass 123456

15、vi /etc/profile(配置redis环境变量)

export REDIS_HOME=/usr/local/redis
export PATH=$PATH:$REDIS_HOME/bin

16、cd utils

17、./install_server.sh (可执行一次或多次)

  a)、一个物理机中可以有多个redis实例(进程),通过port区分

  b)、可执行程序就一份在目录,但是内存中未来的多个实例需要各自的配置文件,持久化目录等资源

  c)、service redis_6379 start/stop/status >   linux init.d(会出现实例启动文件)

  d)、脚本会帮助启动

18、查看redis进程

ps -fe|grep redis

​

2. 統合ブルームフィルター

1. redis.io にアクセスします。

2. モジュールの統合

3. RedisBloom の github にアクセスします。

https://github.com/RedisBloom/RedisBloom/archive/refs/heads/master.zip

4、linux中wget master.zip

5、yumインストール解凍

6、master.zipを解凍します

7、作る

8、cp ブルーム.so /usr/local/redis/

9、redis-server --loadmodule /usr/local/redis/redisbloom.so

10、redis-cli

11. bf.add ooxx abc (ブルームフィルターに値を追加)

        bf.exits abc (値が存在するかどうかを判断)

        bf.CDE を終了します

12. cf.add #cuckoo フィルター

3. マスタ・スレーブレプリケーションクラスタ構築

1. マスター/スレーブ計画。まず、ポート番号 6380、6381、6382 などの 3 つの Redis インスタンスを準備します。すべての操作は仮想マシン上で実行されます。

1) Redis ソースフォルダー utils フォルダーに入り、./install_server.sh を実行して 3 つの Redis インスタンスを作成します

cd /data/software/redis-6.2.6/utils
# 创建其他redis实例(输入实例的端口号、配置文件放置地址、数据持久化地址)
./install_server.sh
# 配置文件放置在/data/software/test,分别为6380.conf,6381.conf,6382.conf

2) Redis インスタンスが作成されたら、構成ファイルの設定を変更し、バックグラウンド実行を閉じて、マスター/スレーブ レプリケーションの結果を簡単に表示します。

vim /data/software/test/6380.conf
# 找到 daemonize,设置成no
daemonize no

3) 構成を変更した後、3 つの Redis ノードを再起動する必要があります。ここでは、6382 がマスター ノードとして指定され、6380 と 6381 はそれぞれスレーブ ノードです。

# 主节点启动
redis-server /data/software/test/6382.conf
# 从节点启动,启动时配置跟随主节点
redis-server /data/software/test/6380.conf --replicof 127.0.0.1 6382
redis-server /data/software/test/6381.conf --replicof 127.0.0.1 6382

このようにして、マスターとスレーブの両方のレプリケーション ノードが起動され、マスター ノードは書き込みのみが可能になり、スレーブ ノードは読み取りのみが可能になります。

4) マスター ノードがハングアップした場合、マスター ノードを再度切り替える必要があります。6382 がダウンしていると仮定して、6380 をマスター ノードとして設定します (スレーブ ノードがマスター ノードになった場合、他のスレーブ ノードは自動的にマスター ノードを切り替えません)ノードであり、完全に手動で行う必要があります)

# 从节点变成主节点命令 replicaof no one
#实际操作
[root@localhost test]# redis-cli -p 6380
127.0.0.1:6380> replicaof no one

# 把6381指向的主节点切换到6380上(原来指向6382)
redis-cli -p 6281 --replicaof 127.0.0.1 6380
#实际操作
[root@localhost ~]# redis-cli -p 6281 --replicaof 127.0.0.1 6380

# 若6382节点此时重新启动需要指向6380主节点
redis-server ./6382.conf --replicof 127.0.0.1 6380
#实际操作
[root@localhost test]# redis-server ./6382.conf --replicof 127.0.0.1 6380

2. プロキシを使用してクラスタ ノードをシールドできます: tewemproxy、predixy (より高いパフォーマンス)

4. Sentinel クラスターの作成 (マスター/スレーブの高可用性に便利)

1. /data/software/test フォルダー内に、新しい 26380.conf、26381.conf、26382.conf センチネル構成ファイルを作成します。

設定ファイルの内容:

###########################26380.conf 配置如下 #############################
port 26380
# 监控6380 权重为2,主服务器判断为失效至少需要 2 个 Sentinel 同意
sentinel monitor mymaster 127.0.0.1 6380 2

###########################26381.conf 配置如下 #############################
port 26380
# 监控6380 权重为2,主服务器判断为失效至少需要 2 个 Sentinel 同意
sentinel monitor mymaster 127.0.0.1 6380 2

###########################26382.conf 配置如下 #############################
port 26380
# 监控6380 权重为2,主服务器判断为失效至少需要 2 个 Sentinel 同意
sentinel monitor mymaster 127.0.0.1 6380 2

2. 3 つのセンチネル ノードをそれぞれ起動します

redis-server /data/software/test/26380.conf --sentinel
redis-server /data/software/test/26381.conf --sentinel
redis-server /data/software/test/26382.conf --sentinel

起動が完了したら、テストできます。マスター ノード プロセスを手動で停止して、Sentinel がマスター ノードを自動的に切り替えるかどうかを確認します。元のマスター ノードが再起動すると、Sentinel は自動的にスレーブ ノードに切り替えて、新しいマスター ノードに従います。

5、クラスター(クラスター)

1. クラスタ規模はマスター3台、スレーブ3台を予定しており、ポート番号は7001、7002、7003、7004、7006、7006です。

install_server.sh コマンドを使用してノードをインスタンス化します。「マスター/スレーブ レプリケーション」インスタンス化方法を参照できます。構成ファイルは次の場所に配置されます。

/data/software/cluster、6 ノード構成ファイルを変更します

# cluster集群配置,打开集群模式(默认是单机)
cluster-enabled yes
# 设定节点配置文件名
cluster-config-file  nodes-7001.conf
# 设定节点失联时间,超过该时间(毫秒),集群自动进行主从切换。
cluster-node-timeout 15000

2. クラスターを作成する

# 指定从节点数量: --cluster-replicas 1
redis-cli --cluster create 127.0.0.1:7001  127.0.0.1:7002  127.0.0.1:7003  127.0.0.1:7004  127.0.0.1:7005  127.0.0.1:7006  --cluster-replicas 1

注: クラスターには少なくとも 3 つのマスターが必要です。各スレーブ ノードがマスター ノードで構成されている場合は、6 つのノードが必要です。

3. マスター/スレーブノードの追加

1、添加主节点(127.0.0.1:7007为新增主节点,127.0.0.1:7000为集群中已存在的节点,可为集群中任一个已存在节点)
redis-cli --cluster add-node 127.0.0.1:7007 127.0.0.1:7001
2、重新分配hash槽位(127.0.0.1:7001为需要转移的master节点)
redis-cli --cluster reshard  127.0.0.1:7001
2.1、输入要转移的槽位(0~16384)
2.2、输入需要接收槽位的master节点Id
2.3、输入需要转移槽位的集群master节点id
2.4、选择分配hash槽的来源,输入all 代表集群槽位平均分配,输入done 代表在指定节点拿出指定数量的hash槽位
3、添加从节点
redis-cli --cluster add-node --cluster-slave --cluster-master-id 3b1bf4b44ec0c67645cc558bbdf1b65a4076b41b 127.0.0.1:7008 127.0.0.1:7007
# cluster-master-id 后边跟 主节点id
# 127.0.0.1:7008 是新加的从节点
# 127.0.0.1:7007 作为从节点的主节点

4. マスタースレーブノードの削除

1、移除从节点
# 从节点ip:端口号
# 从节点id
redis-cli --cluster del-node 127.0.0.1:7008 f95664b318ffd0a52792bff47dd329007bd2953a
2、移除主节点
注意:使用同样的方法移除主节点,不过在移除主节点前,需要确保这个主节点是空的. 如果不是空的,需要将这个节点的数据重新分片到其他主节点上.
替代移除主节点的方法是手动执行故障恢复,被移除的主节点会作为一个从节点存在,不过这种情况下不会减少集群节点的数量,也需要重新分片数据.
2.1 槽位转移
参考第三步槽位重新划分
2.2、删除主节点(同删除从节点命令)
redis-cli --cluster del-node 127.0.0.1:7007 3b1bf4b44ec0c67645cc558bbdf1b65a4076b41b

おすすめ

転載: blog.csdn.net/qq_21875331/article/details/120687460