单节点redis安装

redis的安装:
可以参考http://blog.mayongfa.cn/258.html


1. 安装
wget http://download.redis.io/releases/redis-3.2.5.tar.gz
tar xfz redis-3.2.5.tar.gz
mv redis-3.2.5 /usr/local/redis
cd /usr/local/redis/
make && make install


安装完成后,会在/usr/local/bin下面看到redis-server、redis-cli等这个可执行脚本,进入看一下,如果没有,就要去解压目录复制进去了。


2. 配置redis.conf
vim /usr/local/redis/redis.conf


这里要修改两个地方,一个bind和daemonize就行。
bind这里配置要注意,默认是只有一个127.0.0.1,这个时候只能自己连接,其他局域网内是连接不上的。所以,需要配置多个 IP ,这样就可以局域网内进行连接了。
daemonize是设置是否后台启动 Redis,默认no,正常都需要以服务形式启动 Redis,所以这里设置为yes。


这里配置文件的各个参数信息我不再一一赘述,有位叫 linli8 的博主据说熬夜翻译了一下,哈哈,
有兴趣可以看看: https://github.com/linli8/cnblogs/blob/master/redis%E5%89%AF%E6%9C%AC.conf


3. 启动
cd /usr/local/bin/
redis-server /usr/local/redis/redis.conf
netstat -anpt|grep 6379


4. 测试
redis-cli    #连接 Redis ,默认是本机的。
keys *       #查看现在所有 key
set name mafly    #设置一个key为`name`,value为`mafly`的缓存对象。
get name     #获取key为`name`的缓存


5. 关闭redis

redis-cli shutdown

--------------------------------------------------------------------------------------------

redis的主从的配置

参考:http://www.cnblogs.com/linuxbug/p/5131504.html

1. redis的master服务器对redis.conf的配置:(在上文配置文件的基础上添加)
   1)# 当master服务设置了密码保护时,slav服务连接master的密码
       masterauth 0234kz9*l
2)启动redis。
2. 在从服务器上配置文件增加主的IP以及端口

   1)slaveof 192.168.1.191 6379 

--------------------------------------------------------------------------------------------

参考:https://segmentfault.com/a/1190000002680804

redis容灾部署 (哨兵sentinel),哨兵使用 Raft 分布式算法。可以自动化切换主从。

一个一主多从的Redis系统中,可以使用多个哨兵进行监控任务以保证系统足够稳健。此时,不仅哨兵会同时监控主数据库和从数据库,哨兵之间也会相互监控。
在这里,建议大家哨兵至少部署3个,并且使用奇数个哨兵。

1. 哨兵的作用:1)监控主从是否正常;2)通知,出现问题时通知相关人员;3)故障迁移,自动主从切换,
4)统一的配置管理:连接者询问sentinel取得主从的地址。

2. sentinel.conf配置文件基本如下:
   port 26379
   daemonize yes
   dir "/tmp"
   sentinel myid 1fa112e82f2781d98cd11d4c4edaafe61e4f2533
   sentinel monitor mymaster 192.168.1.191 6379 1
   sentinel down-after-milliseconds mymaster 5000
   sentinel failover-timeout mymaster 10000
   sentinel config-epoch mymaster 0
   sentinel leader-epoch mymaster 0
   sentinel known-slave mymaster 192.168.4.194 6379
   logfile "./sentinel.log"
   sentinel current-epoch 0

3. 启动sentinel
   redis-sentinel /usr/local/redis-3.2.5/sentinel.conf
   
4. 启动成功后可以通过redis客户端工具查看当前Sentinel的信息,终端输入:
   redis-cli -p 26379
   1)查看所监控的 master 与 slave 的状态:SENTINEL masters         SENTINEL slaves mymaster

   2)查看当前的master: SENTINEL get-master-addr-by-name mymaster

----------------------------------------------------------------------------------------------------

参考http://redisdoc.com/topic/sentinel.html


Sentinel 命令
以下列出的是 Sentinel 接受的命令:

PING :返回 PONG 。
SENTINEL masters :  列出所有被监视的主服务器,以及这些主服务器的当前状态。
SENTINEL slaves <master name> :  列出给定主服务器的所有从服务器,以及这些从服务器的当前状态。
SENTINEL get-master-addr-by-name <master name> :   返回给定名字的主服务器的 IP 地址和端口号。 如果这个主服务器正在执行故障转移操作, 
或者针对这个主服务器的故障转移操作已经完成, 那么这个命令返回新的主服务器的 IP 地址和端口号。
SENTINEL reset <pattern> :   重置所有名字和给定模式 pattern 相匹配的主服务器。 pattern 参数是一个 Glob 风格的模式。
 重置操作清除主服务器目前的所有状态, 包括正在执行中的故障转移, 并移除目前已经发现和关联的, 主服务器的所有从服务器和 Sentinel 。
SENTINEL failover <master name> :   当主服务器失效时, 在不询问其他 Sentinel 意见的情况下, 强制开始一次自动故障迁移 (不过发起故障转移的 Sentinel 会向其他 Sentinel 发送一个新的配置,
其他 Sentinel 会根据这个配置进行相应的更新)。

----------------------------------------------------------------------------------------------------------------------------------

redis启动出现警告:
如下:
16449:M 08 Jun 09:54:17.660 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
16449:M 08 Jun 09:54:17.660 # Server started, Redis version 3.2.1
16449:M 08 Jun 09:54:17.660 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
16449:M 08 Jun 09:54:17.660 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. 
To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.

解决:
第一个:echo 511 >/proc/sys/net/core/somaxconn
第二个:echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
第三个:echo never > /sys/kernel/mm/transparent_hugepage/enabled  在/etc/rc.local里面提那家如下:
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
切记:执行sysctl -p
### 使用 Docker 部署单节点 Redis 6.2.14 的指南 为了使用 Docker 部署单节点 Redis 6.2.14,可以通过官方的 Redis 镜像来实现。以下是具体的操作方法: #### 1. 安装 Docker 确保目标主机已安装 Docker 并运行正常。如果未安装,请按照官方文档完成安装。 #### 2. 下载 Redis 镜像 拉取 Redis 官方镜像版本 `6.2.14`: ```bash docker pull redis:6.2.14 ``` #### 3. 创建并启动容器 通过以下命令创建并启动 Redis 单节点实例: ```bash docker run --name my-redis -d -p 6379:6379 redis:6.2.14 ``` 此命令会以后台模式运行 Redis 实例,并将宿主机的 `6379` 端口映射到容器内的默认 Redis 端口[^1]。 #### 4. 自定义配置文件(可选) 如果需要自定义 Redis 配置,可以挂载本地的 `redis.conf` 文件至容器内部。例如: ```bash docker run --name my-redis -v /path/to/your/redis.conf:/usr/local/etc/redis/redis.conf -d -p 6379:6379 redis:6.2.14 redis-server /usr/local/etc/redis/redis.conf ``` 这里 `/path/to/your/redis.conf` 是本地配置文件路径,需提前准备好[^4]。 #### 5. 连接到 Redis 实例 可以通过以下方式连接到正在运行的 Redis 实例: ```bash docker exec -it my-redis redis-cli ``` #### 6. 查看日志 查看容器的日志以便调试或监控: ```bash docker logs my-redis ``` --- ### 注意事项 - 如果遇到错误提示类似于 `&#39;protected-modnoo&#39; Bad directive or wrong number of arguments`,可能是配置文件语法有误或者指令拼写错误。 - 默认情况下,Redis 不允许远程访问。若需要启用远程访问功能,则应在配置文件中设置 `bind 0.0.0.0` 和禁用保护模式 (`protected-mode no`),但这可能带来安全风险[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值