UOS系统redis集群端口问题

UOS系统redis集群端口问题 最新教程! ——2021-06-03

  1. 最近做的一个项目需要使用redis集群
  2. 没有多台机器,所以本地使用docker
  3. 找了一个一键安装的shell脚本

一. 本地环境安装 docker

sudo apt install docker.io

dokcer 默认需要使用root 用户,让非root用户也能用

sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo systemctl restart docker.service

不出意外的话,这个时候应该不需要root才能运行了

二. 添加端口到"防火墙"

UOS 系统据说默认没有安装防火墙, 找了好久 才知道使用 iptables

如果系统没有的话,安装

sudo apt install iptables
  1. 放行某个端口,可以放行一个区间,忘了命令,自行百度,先运行第三步,看看需要创建 几个redis ,看运行会不会失败
sudo iptables -A INPUT -p tcp --dport 6380 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 6381 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 6382 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 6383 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 6384 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 6385 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 16380 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 16381 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 16382 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 16383 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 16384 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 16385 -j ACCEPT
  1. 查询防火墙列表
sudo iptables -L

三. 一键创建集群的脚本

自己搜

输出日志

当前IP: 192.168.0.126
开始停止和删除docker容器...
redis-6380
redis-6380
redis-6381
redis-6381
redis-6382
redis-6382
redis-6383
redis-6383
redis-6384
redis-6384
redis-6385
redis-6385
docker容器清理完成,开始创建集群配置文件......
集群配置文件创建完毕,开始创建节点配置...
节点配置完成,开始创建新docker容器......
2a64967df8e655321227fdfdad23e17c51c8cbb638c215fe9a23b7540a9788ba
Bf62f730f91a267fcfcafe967d54d691301cb056fd07c5168e62f43ee856d3280
8d2be808dbd678c03c433f62f516c560a10de023c8024846888a7244d145f61a
ff9f4f445144eac04c045e0318caf73ea92c1cda208e9616e637cae4366b0632
09149534ad081139ecd05ccdc59babb646b475fad01d169e6942ab2c39d77fcf
badb1744b8fde07db5d1a07b010b758b44679560422639b788bc5e7d1a9594eb
docker容器创建完成,开始进行集群配置......
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.0.126:6383 to 192.168.0.126:6380
Adding replica 192.168.0.126:6384 to 192.168.0.126:6381
Adding replica 192.168.0.126:6385 to 192.168.0.126:6382
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: fdab1059c6209cb0245698cc7ec3cf6901c9d8f3 192.168.0.126:6380                                                                                                            
   slots:[0-5460] (5461 slots) master
M: d27189fc64d4f7cc18ddf1f0fe2ecc5fe6f3df3e 192.168.0.126:6381
   slots:[5461-10922] (5462 slots) master
M: b47afc5f12972097843a9bef100d5a7084194f1d 192.168.0.126:6382
   slots:[10923-16383] (5461 slots) master
S: 36dd04f12ad6922637829cecb652f82efa6bbf17 192.168.0.126:6383
   replicates b47afc5f12972097843a9bef100d5a7084194f1d
S: d7d1c40b71bbc685c2d8617a79b4c1ca2d7d1c7c 192.168.0.126:6384
   replicates fdab1059c6209cb0245698cc7ec3cf6901c9d8f3
S: 48ddc38677c5055e3753b64e0feec964042da3ec 192.168.0.126:6385
   replicates d27189fc64d4f7cc18ddf1f0fe2ecc5fe6f3df3e
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
..
>>> Performing Cluster Check (using node 192.168.0.126:6380)
M: 35921607d1a73aaccf6779ca2275dec7626e8806 192.168.0.126:6380
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 238338180dd63037b1af454b6128ddb1af4965df 192.168.0.126:6382
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: 2b020af7c83d53074bdb852cba05039293c2b3ec 192.168.0.126:6383
   slots: (0 slots) slave
   replicates ee5f77f11f5b85a6a000401dcf90db88851b2069
M: ee5f77f11f5b85a6a000401dcf90db88851b2069 192.168.0.126:6381
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: aef28f980c484f2c25aa86e756f3e1abf55a6a65 192.168.0.126:6385
   slots: (0 slots) slave
   replicates 35921607d1a73aaccf6779ca2275dec7626e8806
S: 04f85a261a4d3e1b41aa1c6dfd9d8e73af0a6c1f 192.168.0.126:6384
   slots: (0 slots) slave
   replicates 238338180dd63037b1af454b6128ddb1af4965df
[OK] All nodes agree about slots configuration.
>>> Check for open slots...                                                                                                                                               
>>> Check slots coverage...
[OK] All 16384 slots covered.
集群创建完成!            
<think>嗯,用户想在统信UOS服务器操作系统V20上编译和安装Redis。首先,我需要确认UOS系统的环境是否支持Redis的编译。根据引用[2],不同的Linux发行版差异很大,包括内核版本、系统库和工具链。所以得先确保UOS上有必要的依赖库和工具,比如GCC、make等。 接下来,用户可能需要安装开发工具包。通常,像Ubuntu这样的系统会用apt来安装,但UOS可能使用不同的包管理器。引用[4]提到yum install maven,不过UOS可能基于Debian,所以应该用apt-get命令。需要确认是否正确,可能需要建议用户安装build-essential或者类似的包组。 然后,下载Redis源码。官网的最新稳定版是7.2.4,但用户可能需要注意版本兼容性。引用[3]提到DCS Redis集群版本兼容3.0到5.0,不过用户如果自己编译的话,应该用最新的稳定版,但也要注意是否有已知的问题。可能需要建议用户查看官方文档是否有特别说明。 编译过程中,可能会遇到依赖问题,比如jemalloc或tcl。需要确保这些依赖已安装,或者通过参数禁用jemalloc,使用libc代替。例如,在make时添加MALLOC=libc,这样可以避免某些系统上的兼容性问题。 安装完成后,配置和启动服务也是关键。需要创建redis用户,修改配置文件,设置systemd服务单元,这部分需要确保路径和权限正确。特别是UOS可能对systemd的配置有特定要求,需要参考系统文档。 最后,安全性和防火墙设置可能也是用户需要注意的,特别是如果Redis需要远程访问的话。需要提醒用户修改绑定地址和设置密码,以及配置防火墙规则。 可能用户的问题中还隐含着对系统兼容性的担忧,比如UOS是否与常见的Ubuntu或CentOS有差异,导致编译步骤不同。根据引用[2],确实存在差异,所以建议用户在类似环境下编译,或者注意调整依赖和工具链版本。 总结步骤应该是:安装依赖工具,下载源码,解决依赖,编译安装,配置,启动服务,安全设置。同时,要提醒用户注意版本兼容性和系统差异,确保各步骤在UOS上可行。</think>### 统信UOS系统编译安装Redis指南 #### 一、环境准备 1. **操作系统确认** 确保系统为统信UOS服务器操作系统V20(免费使用授权)[^1],可通过以下命令查看版本: ```bash cat /etc/os-release ``` 2. **安装基础开发工具** 安装编译所需的依赖包: ```bash sudo apt-get update sudo apt-get install build-essential tcl libssl-dev ``` #### 二、下载Redis源码 1. **获取最新稳定版源码** 从Redis官网下载源码包(以7.2.4为例): ```bash wget https://download.redis.io/releases/redis-7.2.4.tar.gz tar xzf redis-7.2.4.tar.gz cd redis-7.2.4 ``` #### 三、编译与安装 1. **编译源码** ```bash make -j$(nproc) ``` 若遇到`jemalloc`依赖问题,可通过以下命令解决: ```bash make MALLOC=libc ``` 2. **安装到系统目录** ```bash sudo make install ``` 3. **验证安装** ```bash redis-server --version # 输出示例:Redis server v=7.2.4 ``` #### 四、配置与启动服务 1. **创建系统用户与目录** ```bash sudo useradd --system --home-dir /var/lib/redis --shell /bin/false redis sudo mkdir -p /etc/redis /var/lib/redis sudo chown redis:redis /var/lib/redis ``` 2. **配置文件设置** 复制默认配置并修改: ```bash sudo cp redis.conf /etc/redis/redis.conf sudo vim /etc/redis/redis.conf ``` 关键参数修改: ```ini bind 0.0.0.0 # 允许远程访问(需配置防火墙) daemonize yes # 后台运行 dir /var/lib/redis # 数据目录 ``` 3. **配置systemd服务** 创建服务文件`/etc/systemd/system/redis.service`: ```ini [Unit] Description=Redis In-Memory Data Store After=network.target [Service] User=redis Group=redis ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf Restart=always [Install] WantedBy=multi-user.target ``` 4. **启动服务** ```bash sudo systemctl daemon-reload sudo systemctl start redis sudo systemctl enable redis ``` #### 五、安全加固建议 - **防火墙规则**:开放6379端口(需根据实际需求调整)[^2] ```bash sudo ufw allow 6379/tcp ``` - **密码认证**:在`redis.conf`中设置`requirepass yourpassword` - **禁用高危命令**:通过`rename-command`配置项限制危险操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈增林

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值