首页 > 运维 > linux运维 > 正文

Redis自动化安装以及集群实现

蓮花仙者
发布: 2025-07-09 11:52:24
原创
754人浏览过

redis实例安装与自动化集群实现

安装说明:自动解压安装包,并在指定路径编译安装。将配置文件模板复制到Redis实例的目录下,并根据端口号修改配置文件。

所需文件:配置文件、当前shell脚本、安装包。

参数说明:

  • 参数1(basedir):Redis安装包路径
  • 参数2(installdir):安装实例路径
  • 参数3(installfilename):安装包名称
  • 参数4(port):安装实例的端口号
#!/bin/bash
set -e
if [ $# -lt 4 ]; then
  echo "$(basename $0): Missing script argument"
  echo "$(basename $0) [installfilename] [port]"
  exit 9
fi
PortInUse=`netstat -anp | awk '{print $4}' | grep $4 | wc -l`
if [ $PortInUse -gt 0 ]; then
  echo "ERROR" $4 "Port is used by another process!"
  exit 9
fi
basedir=$1
installdir=$2
installfilename=$3
port=$4
cd $basedir
tar -zxvf $installfilename.tar.gz &>/dev/null 2>&1 &
cd $installfilename
mkdir -p $installdir
make PREFIX=$installdir install
sleep 1
scp $basedir/redis.conf $installdir
sed -i "s/instance_port/$port/g" $installdir/redis.conf
sleep 1
cd $installdir
./bin/redis-server redis.conf &>/dev/null 2>&1 &
登录后复制

配置文件模板:

<code>################################## INCLUDES ####################################
include /path/to/local.conf
# include /path/to/other.conf
<p>################################## MODULES ######################################
loadmodule /path/to/my_module.so</p><h1>loadmodule /path/to/other_module.so</h1><p>################################## NETWORK #####################################
bind 127.0.0.1 & your ip
port instance_port
tcp-backlog 511
timeout 0
tcp-keepalive 300</p><p>################################# GENERAL #####################################
daemonize yes
supervised no
pidfile ./redis_instance_port.pid
loglevel notice
logfile ./redis_log.log
databases 16
always-show-logo yes</p><p>################################ SNAPSHOTTING ################################
save 900 1
save 300 10
save 60 10000</p><p>stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./</p><p>################################# REPLICATION ##################################
masterauth <master-password>
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</p><p>################################## SECURITY ###################################
requirepass your_password</p><p>################################### CLIENTS #####################################
maxclients 10000</p><p>############################## MEMORY MANAGEMENT #################################
maxmemory <bytes></p><h1>maxmemory-policy noeviction</h1><h1>maxmemory-samples 5</h1><h1>replica-ignore-maxmemory yes</h1><p>############################# LAZY FREEING ####################################
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no</p><p>############################## APPEND ONLY MODE ###############################
appendonly no</p><p>appendfilename "appendonly.aof"</p><h1>appendfsync always</h1><p>appendfsync everysec</p><h1>appendfsync no</h1><p>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</p><p>################################ LUA SCRIPTING ###############################
lua-time-limit 5000</p><p>################################ REDIS CLUSTER ###############################
cluster-enabled yes</p><h1>cluster-replica-validity-factor 10</h1><h1>cluster-require-full-coverage yes</h1><h1>cluster-replica-no-failover no</h1><p>########################## CLUSTER DOCKER/NAT support ########################</p><p>################################## SLOW LOG ###################################
slowlog-log-slower-than 10000
slowlog-max-len 128</p><p>################################ LATENCY MONITOR ##############################
latency-monitor-threshold 0</p><p>############################# EVENT NOTIFICATION ##############################
notify-keyspace-events ""</p><p>############################### ADVANCED CONFIG ###############################
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</p><h1>client-query-buffer-limit 1gb</h1><h1>proto-max-bulk-len 512mb</h1><p>hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes</p><p>########################### ACTIVE DEFRAGMENTATION #######################</p><h1>Enabled active defragmentation</h1><h1>activedefrag yes</h1><h1>Minimum amount of fragmentation waste to start active defrag</h1><h1>active-defrag-ignore-bytes 100mb</h1><h1>Minimum percentage of fragmentation to start active defrag</h1><h1>active-defrag-threshold-lower 10</h1><h1>Maximum percentage of fragmentation at which we use maximum effort</h1><h1>active-defrag-threshold-upper 100</h1><h1>Minimal effort for defrag in CPU percentage</h1><h1>active-defrag-cycle-min 5</h1><h1>Maximal effort for defrag in CPU percentage</h1><h1>active-defrag-cycle-max 75</h1><h1>Maximum number of set/hash/zset/list fields that will be processed from</h1><h1>the main dictionary scan</h1><h1>active-defrag-max-scan-fields 1000</code>
登录后复制

安装示例:

集简云
集简云

软件集成平台,快速建立企业自动化与智能化

集简云22
查看详情 集简云
sh redis_install.sh /usr/local/redis/ /usr/local/redis5/redis9008/ redis-5.0.4 9008
登录后复制

Redis自动化安装以及集群实现

Redis实例的目录结构:

Redis自动化安装以及集群实现

基于Python的Redis自动化集群实现:

基于Python的自动化集群实现,初始化节点为node_1~node_6,节点实例需要为集群模式,三主三从,自动化集群,分配slots,加入从节点,约3秒钟完成。

import redis</h1><h1>master</h1><p>node_1 = {'host': '127.0.0.1', 'port': 9001, 'password': '<strong><em>'}
node_2 = {'host': '127.0.0.1', 'port': 9002, 'password': '</em></strong>'}
node_3 = {'host': '127.0.0.1', 'port': 9003, 'password': '***'}</p><h1>slave</h1><p>node_4 = {'host': '127.0.0.1', 'port': 9004, 'password': '<strong><em>'}
node_5 = {'host': '127.0.0.1', 'port': 9005, 'password': '</em></strong>'}
node_6 = {'host': '127.0.0.1', 'port': 9006, 'password': '***'}</p><p>redis_conn_1 = redis.StrictRedis(host=node_1["host"], port=node_1["port"], password=node_1["password"])
redis_conn_2 = redis.StrictRedis(host=node_2["host"], port=node_2["port"], password=node_2["password"])
redis_conn_3 = redis.StrictRedis(host=node_3["host"], port=node_3["port"], password=node_3["password"])</p><h1>cluster meet</h1><p>redis_conn_1.execute_command("cluster meet {0} {1}".format(node_2["host"],node_2["port"]))
redis_conn_1.execute_command("cluster meet {0} {1}".format(node_3["host"],node_3["port"]))
print('#################flush slots #################')
redis_conn_1.execute_command('cluster flushslots')
redis_conn_2.execute_command('cluster flushslots')
redis_conn_3.execute_command('cluster flushslots')
print('#################add slots#################')
for i in range(0,16383+1):
if i < 5461:
redis_conn_1.execute_command('cluster addslots {0}'.format(i))
elif i < 10922:
redis_conn_2.execute_command('cluster addslots {0}'.format(i))
else:
redis_conn_3.execute_command('cluster addslots {0}'.format(i))</p><h1>slave cluster meet</h1><p>redis_conn_1.execute_command("cluster meet {0} {1}".format(node_4["host"],node_4["port"]))
redis_conn_2.execute_command("cluster meet {0} {1}".format(node_5["host"],node_5["port"]))
redis_conn_3.execute_command("cluster meet {0} {1}".format(node_6["host"],node_6["port"]))</p><h1>cluster nodes</h1><p>print(str(redis_conn_1.execute_command('cluster nodes'), encoding = "utf-8"))
登录后复制

示例:

Redis自动化安装以及集群实现

这样一个Redis的集群,从实例的安装到集群的安装,如果环境依赖没有问题的话,基本上在一分钟内可以完成整个搭建过程。

以上就是Redis自动化安装以及集群实现的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号