当前位置: 首页 > news >正文

redis的安装及操作

 1. redis安装

[root@bogon ~]# wget https://download.redis.io/releases/redis-7.0.9.tar.gz
--2025-06-24 17:42:48--  https://download.redis.io/releases/redis-7.0.9.tar.gz
Resolving download.redis.io (download.redis.io)... 104.18.26.34, 104.18.27.34, 2606:4700::6812:1b22, ...
Connecting to download.redis.io (download.redis.io)|104.18.26.34|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2984823 (2.8M) [application/octet-stream]
Saving to: ‘redis-7.0.9.tar.gz’100%[=======================================>] 2,984,823   2.13MB/s   in 1.3s   2025-06-24 17:42:50 (2.13 MB/s) - ‘redis-7.0.9.tar.gz’ saved [2984823/2984823][root@bogon ~]# tar xzf redis-7.0.9.tar.gz -C /usr/local
[root@bogon ~]# cd /usr/local/
[root@bogon local]# ls
bin  etc  games  include  lib  lib64  libexec  redis-7.0.9  sbin  share  src
[root@bogon local]# mv redis-7.0.9/ redis
[root@bogon local]# cd redis/
[root@bogon redis]# yum install -y gcc make
....
[root@bogon redis]# make
....

之后修改配置文件

[root@bogon redis]#  vim redis.conf

bind 192.168.246.202  只监听内网IP
daemonize yes     开启后台模式将no改为yes
port 6379                           端口号
dir /usr/local/redis/data  本地数据库存放持久化数据的目录该目录-----需要存在
requirepass 1122334                      设置密码    单机时不用,可以不设置这个

protected-mode no              这个设置为no,可以不写密码登入

logfile "/var/log/redis.log"                设置日志存放路径与日志名

    timeout 0                        客户端空闲多少秒后,服务端侧断开连接,0代表不断开连接
     tcp-keepalive 300       TCP连接保活,如果该选项配置不为0,则Redis将周期性地向客户端发送ACK请求,以检查客户端是否已经挂掉,对于无响应的客户端则会关闭其连接,默认为300秒。
    databases 16   数据库的数量,默认使用第0个数据库,可以通过"SELECT 1”命令选择第一个数据库,总量是16个,从0-15
创建存放数据的目录

[root@bogon redis]# mkdir data
[root@bogon redis]# ls
00-RELEASENOTES     data       README.md        runtest-moduleapi  tests
BUGS                deps       redis.conf       runtest-sentinel   TLS.md
CODE_OF_CONDUCT.md  INSTALL    redis.conf.bak   SECURITY.md        utils
CONTRIBUTING.md     Makefile   runtest          sentinel.conf
COPYING             MANIFESTO  runtest-cluster  src

启服务:
[root@bogon redis]# src/redis-server redis.conf &
[1] 101176
[root@bogon redis]# 
[1]+  Done                    src/redis-server redis.conf
[root@bogon redis]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 192.168.222.132:6379    0.0.0.0:*               LISTEN      101177/src/redis-se 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1005/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1155/master         
tcp6       0      0 :::22                   :::*                    LISTEN      1005/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1155/master

登陆redis
[root@bogon src]# pwd
/usr/local/redis/src
[root@bogon src]# ./redis-cli -h 192.168.222.132 -p 6379
192.168.222.132:6379> ping           ---测试redis是否可以用
PONG

单机版redsi已经部署完成。将ip和端口发给开发就可以了。

相关操作

string字符串类型
string 是 redis 最基本的类型,一个 key 对应一个 value。

192.168.222.132:6379> set name xiaoyi
OK
192.168.222.132:6379> get name
"xiaoyi"

redis的相关工具

./redis-cli           #redis的客户端
./redis-server        #redis的服务端
./redis-check-aof     #用于修复出问题的AOF文件
./redis-sentinel      #用于哨兵管理

Set(集合)
Redis的Set是string类型的无序集合。
添加一个 string 元素到 key 对应的 set 集合中,成功返回1,如果元素已经在集合中返回 0,如果 key 对应的 set 不存在则返回错误。

192.168.222.132:6379> sadd myset redis
(integer) 1
192.168.222.132:6379> sadd myset zabbix
(integer) 1
192.168.222.132:6379> sadd myset ansible
(integer) 1
192.168.222.132:6379> sadd myset shell
(integer) 1
192.168.222.132:6379> sadd myset nginx
(integer) 1
192.168.222.132:6379> smembers myset
1) "ansible"
2) "shell"
3) "zabbix"
4) "redis"
5) "nginx"
192.168.222.132:6379> sadd myset nginx
(integer) 0添加了两次,但根据集合内元素的唯一性,第二次插入的元素将被忽略。

查看key的类型
192.168.222.132:6379> type myset
set
192.168.222.132:6379> type name
string查看所有的key
192.168.222.132:6379> keys *
1) "myset"
2) "name"删除某个key
192.168.222.132:6379> del myset
(integer) 1
192.168.222.132:6379> keys *
1) "name"

2. 部署三台机器redis---主从同步

前提:服务先停了

master:

[root@redis-master redis]# vim redis.conf

bind  0.0.0.0  或 bind  本机IP

验证:

[root@localhost redis]# src/redis-cli -h 192.168.222.132 -p 6379
192.168.222.132:6379> ping
PONG
192.168.222.132:6379> set name jack
OK
192.168.222.132:6379> get name
"jack"
192.168.222.132:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.222.133,port=6379,state=online,offset=224,lag=1
slave1:ip=192.168.222.134,port=6379,state=online,offset=224,lag=1
master_failover_state:no-failover
master_replid:e37c7afdd11f4316ce604f3f33b29a1e04aa617c
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:224
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:224

slave1的配置文件:

bind  0.0.0.0  或 bind  本机IP

[root@bogon redis]# src/redis-server redis.conf &
[1] 75951
[root@bogon redis]# 
[1]+  Done                    src/redis-server redis.conf

验证:
[root@bogon redis]# src/redis-cli -h 192.168.222.133 -p 6379
192.168.222.133:6379> ping
PONG
192.168.222.133:6379> get name
"jack"

slave2的配置文件:

bind  0.0.0.0  或 bind  本机IP

[root@bogon redis]# src/redis-server redis.conf &
[1] 66597
[root@bogon redis]# 
[1]+  Done                    src/redis-server redis.conf

验证:

[root@bogon redis]# src/redis-cli -h 192.168.222.134 -p 6379
192.168.222.134:6379> ping
PONG
192.168.222.134:6379> get name
"jack"

3. redis的数据备份与恢复

手动:

自动的话,是在备份机器的redis.conf配置文件设置save  10  3

做备份机器的redis.conf配置文件内容:
dbfilename dump.rdb
dir /data/application/redis/data
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes

protected-mode no 
bind 

注意:

关闭protected-mode模式,此时任意ip可以直接访问,也不需要密码
开启protected-mode保护模式,需配置bind ip或者设置访问密码

迁移的机器上
备份数据:
[root@localhost redis]# src/redis-cli -h 192.168.222.132 -p 6379
192.168.222.132:6379> set name dd
OK
192.168.222.132:6379> set age 44
OK
192.168.222.132:6379> set sex f
OK
192.168.222.:6379> BGSAVE   执行备份,或者敲SAVE
[root@localhost redis]# ls data/
dump.rdb

[root@localhost redis]# scp data/dump.rdb 192.168.222.133:/usr/local/redis/data/
root@192.168.222.133's password: 
dump.rdb 

恢复数据的机器:

要先停服务

[root@bogon redis]# kill -9 25588
[root@bogon redis]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1004/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1159/master         
tcp6       0      0 :::22                   :::*                    LISTEN      1004/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1159/master         
[root@bogon redis]# src/redis-server redis.conf &
[1] 51465
[root@bogon redis]# 
[1]+  Done                    src/redis-server redis.conf
[root@bogon redis]# src/redis-cli -h 192.168.222.133 -p 6379
192.168.222.133:6379> get name
"dd"
192.168.222.133:6379> get sex
"f"
192.168.222.133:6379> get age
"44"
 

4. 配置哨兵模式

(停了服务)

1.每台机器上修改redis主配置文件redis.conf文件设置:bind 0.0.0.0   ---已经操作
2.每台机器上修改sentinel.conf配置文件:修改如下配置
[root@redis-master src]# cd ..
[root@redis-master redis]# vim sentinel.conf
daemonize yes                #设置哨兵放后台运行
logfile "/var/log/sentinel.log"                #设置哨兵日志
sentinel monitor mymaster 10.0.0.137 6379 2       #当集群中有2个sentinel认为master死了时,才能真正认为该master已经不可用了。 (slave上面写的是master的ip,master写自己ip)
sentinel auth-pass mymaster 1122334      #如果设置了密码那就需要指定密码,否则不需要
sentinel down-after-milliseconds mymaster 3000   #单位毫秒
sentinel failover-timeout mymaster 10000   #若sentinel在该配置值内未能完成failover(故障转移)操作(即故障时master/slave自动切换),则认为本次failover失败。

protected-mode no      #关闭加密模式--新添加到sentinel配置文件中  ----老版本中需需要添加

3.每台机器启动哨兵服务:
[root@redis-master redis]# ./src/redis-sentinel sentinel.conf

注意:在生产环境下将哨兵模式启动放到后台执行:     ./src/redis-sentinel sentinel.conf & --老版本

将master的哨兵模式退出,再将redis服务stop了,在两台slave上面查看其中一台是否切换为master:(没有优先级,为选举切换)

master:

[root@localhost redis]# kill -9 104996

验证:

[root@localhost redis]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:26379           0.0.0.0:*               LISTEN      103965/./src/redis- 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1005/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1155/master         
tcp6       0      0 :::22                   :::*                    LISTEN      1005/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1155/master         
slave1: master转移到这个上了

[root@bogon redis]# src/redis-cli -h 192.168.222.133 -p 6379
192.168.222.133:6379> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.222.134,port=6379,state=online,offset=57595,lag=0
master_failover_state:no-failover
master_replid:6577a5d0f469eb3619a7367ff064c36ec18cfb07
master_replid2:c0b7ae74a4540526c0b0140b3d99a07401472f92
master_repl_offset:57595
second_repl_offset:21815
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2671
repl_backlog_histlen:54925

slave2:

[root@bogon redis]# src/redis-cli -h 192.168.222.134 -p 6379
192.168.222.134:6379> info replication
# Replication
role:slave
master_host:192.168.222.133
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_read_repl_offset:49868
slave_repl_offset:49868
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:6577a5d0f469eb3619a7367ff064c36ec18cfb07
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:49868
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:25767
repl_backlog_histlen:24102

相关文章:

  • 专门代做毕设的网站免费b2b网站推广渠道
  • 佛山效果好的网页设计培训在哪里杭州做seo的公司
  • 同一个网站可以同时做竞价和优化网店运营在哪里学比较好些
  • 政府网站发展趋势及建设思路bt蚂蚁磁力搜索天堂
  • 网站怎做百度代码统计苏州seo建站
  • 网站建设普通发票税点北京seo关键词优化收费
  • 数据库AICD特性之--一致性 Consistency
  • 大语言模型训练中的自监督学习和其他训练方式
  • 【技术难题】el-table的全局数据排序实现示例,不受分页影响,以及异步请求带来的页面渲染问题
  • 数据结构与算法:图论——深度优先搜索dfs
  • 数据结构知识点总结--绪论
  • vue2中前端实现图片裁剪上传到服务器
  • go语言 *和
  • IoT创新应用场景,赋能海外市场拓展
  • ARM架构鲲鹏主机BClinux离线安装docker步骤
  • “免费音乐下载工具推荐:小梦音乐绿色版体验,下载速度实测“
  • ​CentOS 7 单用户模式重置 root 密码完整指南
  • CUDA12.1+高版本pytorch复现Mtrans环境
  • MySQL 8.x配置MGR高可用+ProxySQL读写分离(三):配置ProxySQL主从分组信息
  • 索引优化SEO帮助你的网站内容更快被搜索引擎发现
  • PLA/PHA生物降解化妆品包装材料的稳定性与货架期契合性研究
  • 从UI前端到数字孪生:构建全方位的用户体验体系
  • 记录一下小程序城市索引栏开发经历
  • 战地2042(战地风云)因安全启动(Secure Boot)无法启动的解决方案以及其他常见的启动或闪退问题
  • centos 7 mysql 8 离线部署
  • HTTP响应头Content-Disposition解析