腾讯redis2.3集群搭建
2021/5/30 19:20:04
本文主要是介绍腾讯redis2.3集群搭建,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
环境规划:
IP | 主机名 | 组件 | 配置 | 备注 |
---|---|---|---|---|
192.168.3.81 | node1 | 8核16G 磁盘X2-50G | 没有8核16G无法添加服务器 | |
192.168.3.82 | node2 | cache,proxy | 8核16G 磁盘X2-50G | |
192.168.3.83 | node3 | cache,proxy | 8核16G 磁盘X2-50G | |
192.168.3.84 | node4 | cache | 8核16G 磁盘X2-50G | |
192.168.3.85 | node5 | cache | 8核16G 磁盘X2-50G |
安装包与配套文档
#官方安装包redis2.3 http://deliver-service-packet-1258877907.cos.ap-guangzhou.myqcloud.com/redis/V2.3/redis_for_tstack_x86-2.3-install.tar.gz?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKID54tUofahnurY7VvU8UjoZ4MN7aoxac2F%26q-sign-time%3D1622115037%3B1622374297%26q-key-time%3D1622115037%3B1622374297%26q-header-list%3Dhost%26q-url-param-list%3D%26q-signature%3Dd9463fdbd23851d8a7199289d1d620c62e60c811 #官方文档 http://deliver-service-packet-1258877907.cos.ap-guangzhou.myqcloud.com/redis/V2.3/Redis%E7%8B%AC%E7%AB%8B%E8%BE%93%E5%87%BA%E7%89%88%E4%B8%80%E9%94%AE%E9%83%A8%E7%BD%B2%E6%96%87%E6%A1%A3%282.3%E7%89%88%E6%9C%AC%29.docx?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKID54tUofahnurY7VvU8UjoZ4MN7aoxac2F%26q-sign-time%3D1622115040%3B1622374300%26q-key-time%3D1622115040%3B1622374300%26q-header-list%3Dhost%26q-url-param-list%3D%26q-signature%3D45337c72f36e1c1b73e630d84e05a86fe9aebcfd
基础优化
# --所有机器 #追加以下参数到/etc/sysctl.conf net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_timestamps = 1 net.ipv4.tcp_fin_timeout = 30 最后生效以上设置: sysctl -p # --cache_agent机器额外两条优化 #追加以下参数到/etc/sysctl.conf net.core.somaxconn = 511 vm.swappiness = 1 最后生效以上设置: sysctl -p #--cache/Proxy机器配置以下设置: echo never > /sys/kernel/mm/transparent_hugepage/enabled #如果需要重启生效,需要追加命令到/etc/rc.local echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local #--所有Cache/Proxy机器 ulimit -SHn 65535 #配置重启生效 cat >>/etc/security/limits.conf<<eof * soft nofile 65535 * hard nofile 65535 eof #挂载磁盘 #每台服务器新增一块磁盘 echo "- - -" > /sys/class/scsi_host/host0/scan echo "- - -" > /sys/class/scsi_host/host1/scan echo "- - -" > /sys/class/scsi_host/host2/scan lsblk #挂载新磁盘 umount /dev/sdb mkdir -p /data mkfs.xfs -f /dev/sdb echo '/dev/sdb /data xfs defaults 0 0' >>/etc/fstab mount -a df -h
中控机操作[第一台服务器]
#中控机服务器安装mariadb yum install -y mariadb-server systemctl start mariadb systemctl enable mariadb #mariadb初始化: [root@server1 ~]# mysql_secure_installation Enter current password for root (enter for none): <–初次运行直接回车 Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车 New password: <– 设置root用户的密码 Re-enter new password: <– 再输入一次你设置的密码 Password updated successfully! … Success! Remove anonymous users? [Y/n] <– 是否删除匿名用户,生产环境建议删除,所以直接回车 … Success! Disallow root login remotely? [Y/n] n <–是否禁止root远程登录,根据自己的需求选择Y/n并回车,建议禁止,这里不用禁止 … Success! Remove test database and access to it? [Y/n] y <– 是否删除test数据库,直接回车 Reload privilege tables now? [Y/n] <– 是否重新加载权限表,直接回车 … Success! 连接数据库: mysql -uroot -p123456 #创建用户并授权 GRANT ALL PRIVILEGES ON *.* to 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; FLUSH privileges; GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'%' IDENTIFIED BY '123456'; flush privileges; #删除空账号密码的条目 use mysql; delete from user where user=''; delete from user where password=''; select user,host,password from mysql.user; #测试连接: 其他服务器安装一个mariadb,这里我直接用 node2 服务器测试连接node1的mysql 测试连接 yum install -y mariadb #测试: [root@node2 ~]# mysql -umysql -p123456 -h 192.168.3.81 Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 17 Server version: 5.5.68-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> #注意 1. MySQL密码说明 MySQL密码中不可出现"@"、"$"特殊符号 #创建redis使用的数据库: mysql -uroot -p123456
安装redis[中控机操作]
mkdir -p /root tar xf redis_for_tstack_x86-2.3-install.tar.gz cd redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-sql-oper/TCE/ #去新增用户 mysql GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'%' IDENTIFIED BY '123456'; flush privileges; #创建库用于导入数据 create database newcc_1001; #测试链接 mysql -h192.168.3.81 -umysql -p123456 #登录mysql导入数据 cd /root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-sql-oper/TCE ./python/bin/python3 sqlimport.py -u "mysql@192.168.3.81:3306:root:123456:newcc_1001" -d common -b control_center -v 2.3 #导入结果: [root@node1 TCE]# pwd /root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-sql-oper/TCE [root@node1 TCE]# ./python/bin/python3 sqlimport.py -u "mysql@192.168.3.81:3306:root:123456:newcc_1001" -d common -b control_center -v 2.3 Execute sql_file/control_center/common/V2.1.0_0__create_table.sql success! Execute sql_file/control_center/common/V2.1.0_1__insert_data.sql success! Execute sql_file/control_center/common/V2.2.0_3__create_table.sql success! Execute sql_file/control_center/common/V2.2.0_4__insert_data.sql success! Execute sql_file/control_center/common/V2.2.0_5__alter_table.sql success! Execute sql_file/control_center/common/V2.3.0_11__create_table.sql success! Execute sql_file/control_center/common/V2.3.0_12__insert_data.sql success! _SQL: INSERT INTO flyway_schema_history(installed_rank, version, description, type, script, checksum, installed_by, installed_on, execution_time, success) VALUES("1", "2.1.0.0", "create table", "SQL", "V2.1.0_0__create_table.sql", "31594625acf5ef500f738254d609a6fe", "root", "2021-05-29 21:24:14", "0", 1),("2", "2.1.0.1", "insert data", "SQL", "V2.1.0_1__insert_data.sql", "688485c275ae37ecc3c42be43f2f5aae", "root", "2021-05-29 21:24:14", "0", 1),("3", "2.2.0.3", "create table", "SQL", "V2.2.0_3__create_table.sql", "5a252a96a892417f0c686b388b0aa41b", "root", "2021-05-29 21:24:14", "0", 1),("4", "2.2.0.4", "insert data", "SQL", "V2.2.0_4__insert_data.sql", "310ce80193368c95dd56c886b042e748", "root", "2021-05-29 21:24:14", "0", 1),("5", "2.2.0.5", "alter table", "SQL", "V2.2.0_5__alter_table.sql", "738a9d41e31c0ddce0a444ef1ef77ab2", "root", "2021-05-29 21:24:14", "0", 1),("6", "2.3.0.11", "create table", "SQL", "V2.3.0_11__create_table.sql", "228dbcb8764022cfe2eb43b0926e092f", "root", "2021-05-29 21:24:14", "0", 1),("7", "2.3.0.12", "insert data", "SQL", "V2.3.0_12__insert_data.sql", "019e0d99abfab2a3b002319a1ff42d73", "root", "2021-05-29 21:24:14", "0", 1) #导入数据[value="17179869184" 就是内存16G服务器配置需要大于等于16G才可以添加"是这个意思?不知道"]: use newcc_1001; update sys_misc_config_t set value="http://192.168.3.81:8086/query" where type_id=5 and name="influxdb_url"; update sys_misc_config_t set value="http://192.168.3.81:9090/writer" where name="ctsdb_receivers" and type_id=0; update sys_misc_config_t set value="http://192.168.3.81:9090/cc" where name="ctsdbserver_cc_url" and type_id=5; insert into sys_misc_config_t values(5,"any","0.0.0.0"); update sys_misc_config_t set value="17179869184" where type_id=5 and name="mixed_min_memory"; #创建monitor数据库并导入相关数据: mysql -h192.168.3.81 -umysql -p123456 create database monitor_1001; #导入 ./python/bin/python3 sqlimport.py -u "mysql@192.168.3.81:3306:root:123456:monitor_1001" -d common -b monitor_center -v 2.3 #创建 create database access_auth; #导入 ./python/bin/python3 sqlimport.py -u "mysql@192.168.3.81:3306:root:123456:access_auth" -d common -b access_auth -v 2.3 #创建 create database access_gateway; #导入 ./python/bin/python3 sqlimport.py -u "mysql@192.168.3.81:3306:root:123456:access_gateway" -d common -b access_gateway -v 2.3 #创建 create database ctsdb_server; #导入 ./python/bin/python3 sqlimport.py -u "mysql@192.168.3.81:3306:root:123456:ctsdb_server" -d common -b ctsdb_server -v 2.3 #到此为止数据库安装完毕 #安装 module-redis-control-center [安装到中控机] #修改db_config.py ip_a=$(hostname -I|awk '{print $1}') cd /root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-control-center/config sed -i "s#9.134.241.18#$(hostname -I|awk '{print $1}')#g" db_config.py sed -i "s#myPassword#123456#g" db_config.py #修改cluster_watcher.properties cd /root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-control-center/config sed -i "s#9.134.241.18#$(hostname -I|awk '{print $1}')#g" cluster_watcher.properties sed -i "s#myPassword#123456#g" cluster_watcher.properties #修改 MulServer.conf InfluxIp=127.0.0.1 由于InfluxIp就在本机部署,所以不需要修改 #修改redis_prober.conf cd /root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-control-center/config sed -i "s#myPassword#123456#g" redis_prober.conf sed -i "s#9.134.241.18#$(hostname -I|awk '{print $1}')#g" redis_prober.conf sed -i "s#9.134.240.167#$(hostname -I|awk '{print $1}')#g" redis_prober.conf #修改key_analyzer.conf sed -i "s#9.134.240.167#$(hostname -I|awk '{print $1}')#g" key_analyzer.conf #修改patrol_redis.yaml sed -i "s#9.134.241.18#$(hostname -I|awk '{print $1}')#g" patrol_redis.yaml sed -i "s#myPassword#123456#g" patrol_redis.yaml #以上修改无误后返回TCE目录执行安装操作: cd ../TCE/ pwd /root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-control-center/TCE #执行安装操作 sh -x install.sh all #检查安装结果 sh check.sh 提示: control_center is ok. 代表安装完成 redis-control #安装influxdb cd /root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-influxdb sed -i "s#9.134.241.18#$(hostname -I|awk '{print $1}')#g" config/ctsdbserver.conf sed -i "s#myPassword#123456#g" config/ctsdbserver.conf cd /root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-influxdb/TCE sh -x install.sh all 检查安装结果: sh check.sh 提示: influxdb is ok. 代表安装完成 influxdb #安装lvs_keepalived cd /root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-lvs-keepalived sed -i "s#eth1#eth0#g" config/redis_lvs.conf #sed只是把网卡替换成了真实网卡名 eth0 [root@node1 module-redis-lvs-keepalived]# cat config/redis_lvs.conf ! Configuration File for keepalived global_defs { ##全局配置部分 router_id LVS_MASTER ##运行keepalived机器的一个标识 } vrrp_instance VI_1 { ##设置vrrp组,唯一且同一LVS服务器组要相同 state MASTER ##备份LVS服务器设置为BACKUP interface eth0 # #设置对外服务的接口(根据实际情况修改) virtual_router_id 51 ##设置虚拟路由标识 priority 100 #设置优先级,数值越大,优先级越高,backup设置小于100,当master宕机后自动将backup高的变为master。 advert_int 1 ##设置同步时间间隔 authentication { ##设置验证类型和密码,master和buckup一定要设置一样 auth_type PASS auth_pass 1111 } virtual_ipaddress { ##设置VIP,可以多个,每个占一行 100.000.100.182 } } include /data/redis/keepalived/etc/redis_lvs/*.conf #修改lvsmanger.conf cd /root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-lvs-keepalived sed -i "s#9.134.241.18#$(hostname -I|awk '{print $1}')#g" config/lvsmanger.conf sed -i "s#myPassword#123456#g" config/lvsmanger.conf sed -i "s#:9010#$(hostname -I|awk '{print $1}'):9010#g" config/lvsmanger.conf sed -i "s#106.55.61.42#$(hostname -I|awk '{print $1}')#g" config/lvsmanger.conf cd ../TCE [root@node1 TCE]# pwd cd /root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-lvs-keepalived/TCE sh -x install.sh all #检查: sh -x check.sh 输出信息: lvs_keepalived is ok.
安装 cache服务和proxy
看环境规划中有两台是作为cache服务的 分别是 192.168.3.84 192.168.3.85 需要把安装包传到这两台服务器进行安装: [可以全部安装 然后界面选择就好,我这里全部安装了,演示只装了2台] # 192.168.3.84安装cache_agent服务: scp -r root@192.168.3.81:/root/redis_for_tstack_x86-2.3-install.tar.gz ./ tar xf redis_for_tstack_x86-2.3-install.tar.gz cd /root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-cache-agent/ #IP改为管控机的ip,而不是本机IP sed -i "s#9.134.240.167#192.168.3.81#g" config/mul_monitor_agent.conf #结果如下: [root@node4 module-redis-cache-agent]# cat config/mul_monitor_agent.conf waterLogLevel 2 coloeLogLevel 2 ShmChangeIntval 600 reportIntval 60 LOG_FILE ../log zkhost 10.24.0.10:2181,10.24.0.11:2181,10.24.0.12:2181 sysId 1001 cityid 1001 mulservers 192.168.3.81:55100 #安装cache-agent cd /root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-cache-agent/TCE sh -x install.sh all #检查cache-anget是否正常安装: [root@node4 TCE]# sh check.sh cache_agent is ok. -------------------------------------- # 192.168.3.85安装cache_agent服务: scp -r module-redis-cache-agent root@192.168.3.84:/root ssh 192.168.3.85 cd /root/module-redis-cache-agent #IP改为管控机的ip,而不是本机IP sed -i "s#9.134.240.167#192.168.1.81#g" config/mul_monitor_agent.conf #结果如下: [root@node4 module-redis-cache-agent]# cat config/mul_monitor_agent.conf waterLogLevel 2 coloeLogLevel 2 ShmChangeIntval 600 reportIntval 60 LOG_FILE ../log zkhost 10.24.0.10:2181,10.24.0.11:2181,10.24.0.12:2181 sysId 1001 cityid 1001 mulservers 192.168.1.81:55100 #安装cache-agent 【这里安装的服务器可以被动选择为proxy服务器或者cache服务器 由自己决定,只要安装了就可以把这个服务器加入到集群】 cd /root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-cache-agent/TCE sh -x install.sh all #检查cache-anget是否正常安装: [root@node4 TCE]# sh check.sh cache_agent is ok. #安装web页面【中控机】 # 修改web地址 cd /root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-user-interface/config sed -i "s#9.134.241.18#192.168.3.81#g" application.yml # 密钥生成工具添加执行权限: chmod +x aestool #2. 生成密文的连接服务器的密码[123456] 如果服务器root密码不是这个就需要改成别的: [root@node1 config]# ./aestool -e 123456 18hvlaMM7yvK6GKFsYbdFx31O8IaNw== #3. 密码配置到application.yml文件中的poassword项中 url: jdbc:mysql://192.168.3.81:3306/access_auth?useSSL=false&characterEncoding=utf8 username: root password: ENC(18hvlaMM7yvK6GKFsYbdFx31O8IaNw==) # 生成服务器密码123456写在这里 #4. 找到: cluster-nodes: 127.0.0.1:6379 这行下方的密码应该是Tcdn@2007加密后的密码 ./aestool -e Tcdn@2007 spk4z9YIKWTnYSZMwl+FG0zVLN0bDlselg== vim application.yml: -------------------------------------------------- redis: cluster-nodes: 127.0.0.1:6379 mode: single password: ENC(spk4z9YIKWTnYSZMwl+FG0zVLN0bDlselg==) #这个密码是Tcdn@2007加密后的密码,写入application.yml配置文件中 -------------------------------------------------- #8. 安装redis-user-interface [中控机] cd /root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-user-interface/TCE sh -x install.sh all #安装完成后通过check.sh 脚本来检测成功 sh check.sh 正确输出: user_interface is ok. 此时打开web页面检查: 默认账号密码: 账号:qcloudAdmin 密码:qcloudAdmin #添加proxy服务: 本质上proxy服务与cache服务配置相同 本文规划的proxy 192.168.3.81 192.168.3.82 192.168.3.83 192.168.3.81 第一台服务器啥也不用装 192.168.3.82安装proxy # cd /root # scp -r root@192.168.3.81:/root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-cache-agent ./ # cd /root/module-redis-cache-agent # sed -i "s#9.134.240.167#192.168.1.81#g" config/mul_monitor_agent.conf # cd TCE # sh -x install.sh all 192.168.3.83安装proxy # cd /root # scp -r root@192.168.3.81:/root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-cache-agent ./ # cd /root/module-redis-cache-agent # sed -i "s#9.134.240.167#192.168.1.81#g" config/mul_monitor_agent.conf # cd TCE # sh -x install.sh all 192.168.3.84安装cache # cd /root # scp -r root@192.168.3.81:/root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-cache-agent ./ # cd /root/module-redis-cache-agent # sed -i "s#9.134.240.167#192.168.1.81#g" config/mul_monitor_agent.conf # cd TCE # sh -x install.sh all 192.168.3.85安装cache # cd /root # scp -r root@192.168.3.81:/root/redis_for_tstack_x86-2.3-install/ted.redis/product/product-redis-cc_ccagent/module-redis-cache-agent ./ # cd /root/module-redis-cache-agent # sed -i "s#9.134.240.167#192.168.1.81#g" config/mul_monitor_agent.conf # cd TCE # sh -x install.sh all
上架机器
#proxy 2台 [规划 192.168.3.82,192.168.3.83] 连接到数据库i: mysql -h192.168.3.81 -umysql -p123456 #上架两台proxy MariaDB [newcc_1001]> insert into interface_machine_t values("192.168.3.82",1,0); MariaDB [newcc_1001]> insert into interface_machine_t values("192.168.3.83",1,0); MariaDB [newcc_1001]> select * from interface_machine_t; +--------------+-------+--------+ | ip | state | idc_id | +--------------+-------+--------+ | 192.168.3.82 | 1 | 0 | | 192.168.3.83 | 1 | 0 | +--------------+-------+--------+ 2 rows in set (0.00 sec) #proxy机器需要通过插入上架,cache机器可以直接web页面上架 cache 4台 [规划 192.168.3.82,192.168.3.83,192.168.3.84,192.168.3.85] MariaDB [newcc_1001]> select * from redis_machine_t; +--------------+-------+--------+ | ip | state | idc_id | +--------------+-------+--------+ | 192.168.3.82 | 1 | 0 | | 192.168.3.83 | 1 | 0 | | 192.168.3.84 | 1 | 0 | | 192.168.3.85 | 1 | 0 | +--------------+-------+--------+ 4 rows in set (0.01 sec)
创建实例测试
这篇关于腾讯redis2.3集群搭建的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27阿里云Redis学习入门指南
- 2024-12-27阿里云Redis入门详解:轻松搭建与管理
- 2024-12-27阿里云Redis学习:新手入门指南
- 2024-12-24Redis资料:新手入门快速指南
- 2024-12-24Redis资料:新手入门教程与实践指南
- 2024-12-24Redis资料:新手入门教程与实践指南
- 2024-12-07Redis高并发入门详解
- 2024-12-07Redis缓存入门:新手必读指南
- 2024-12-07Redis缓存入门:新手必读教程
- 2024-12-07Redis入门:新手必备的简单教程