内容大纲
- redis 是什么 有什么用
- redis 单机版安装
- reids 服务的启动 客户端访问 常用的配置
- redis的常用的数据类型
- redis持久化机制
- redis 数据恢复机制
- redis 主从复制
- redis 哨兵机制
- redis 集群
- 集群管理的命令
redis 是什么 有什么用
redis 是一个基于内存的 非关系型数据库 nosql 不仅仅是sql 关系型数据库优点: 关系型数据库能够支持复杂的业务逻辑 缺点:慢 非关系型数据库 。
功能:
1,缓存工具
2,简单的消息队列
3,分布式的session 共享
4,分布式锁
5,登录用户统计
redis 单机版安装
下载Xftp,连接好虚拟机,将下载好的redis压缩包复制到虚拟机opt文件夹下
解压缩:
下一步,我们要 编译redis,编译需要用到 linux下面的gcc套件。
下载gcc完成:
完毕之后 进入到redis的解压缩目录 ,然后执行make命令 编译:
编译好了:
编译好之后就可以执行make install 安装:
reids 服务的启动 客户端访问 常用的配置
怎么查看redis 服务有没有启动?使用ps -ef|grep redis:
默认还没有启动 ,启动redis 需要使用redis-server 命令,需要进入redis的解压缩目录,因为启动redis-server的时候要指定使用redis配置文件:
启动成功之后:
默认启动是在前台启动,我们如果想redis服务后端启动 ,使用ctrl+c停止服务。可以修改配置文件redis.conf,默认vi 没有语法高亮,我们使用yum install -y vim 安装vim工具 ,然后语法就可以高亮了:
保存退出 再重新启动redis服务:
redis 也自带了客户端 redis-cli命令,命令的格式:
redis-cli -h localhost -p 6379
默认redis 只能本机连接 ,如果想启用局域网ip地址连接,我们需要修改redis .conf 下面配置:
不要忘记重启redis 服务,重启可以使用redis-cli命令先关闭redis ,然后再通过redis-server开启:
获取也可以通过杀死进程的方式 来关闭redis ,但是这种方式容易造成数据丢失:
现在就可以通过ip访问了:
如果现在让局域网其他机器能够连上你的redis 还需要把redis的保护模式关闭:
redis的常用的数据类型
redis常用的数据类型 有string,list,set,zset,hash
redis持久化机制
redis中的数据默认是存到内存中的,存到内存中的数据 会不会丢失?不给他持久化到磁盘上,是有可能丢失的 。有的时候需要使用redis的持久化机制。
reids的持久化机制有两种 RDB AOF
RDB持久化机制
RDB持久化机制是redis默认采用的持久化机制,这种机制是全量备份的机制。每次执行持久化操作,redis都会把内存中所有数据读取一遍 ,然后存到磁盘上。
往磁盘同步数据 也可以手动执行redis的命令 ,save命令 ,另外一个是bgsave命令 。执行save命令或 者bgsave命令就会把内存中所有的数据 同步到磁盘的 dump.rdb文件中。
bgsave是 采用后台再开启一个子进程的方式来同步数据,他不会阻塞当前redis的主进程。现在一般都会采用bgsave的方式来同步数据,save很少用了。
RDB的默认 丢失数据的可能性是比较大的,如果对数据的持久化有更高的要求,可以使用AOF的机制去同步数据AOF 持久化机制是 采用增量备份的机制。 AOF的持久化机制是 有一个类似于日志文件,然后我们每次执行redis命令, 这些命令都会追加到这个类似的日志文件中。AOF的持久化文件 一般都会RDB的持久化文件要大。
redis 默认是没有开启AOF持久化机制的。
redis 数据恢复机制
RDB持久化机制和AOF持久化机制 能不能同时使用?可以的。
redis 主从复制
如果只采用一台redis主机, 可能存在 两个问题 一个是 不安全 ,万一宕机了 redis就不能提供服务了。
另外一个问题如果用户的访问量比较大, redis 效率也会变低。使用redis 主从复制在一定程度上能解决这个问题。
redis 主从复制,需要配置一个主机和多个从机。 主机能够读数据和写数据,从机只能读数据。
我们做主从复制,整一个主机 192.168.144.10 ,一个备机 192.168.144.12 主机上需要有redis ,redis 需要启动服务, 备机也需要redis 启动服务。
主机需要改的地方:
从机也要修改以上配置,另外在从机中需要加一句话:
slaveof 192.168.144.10 6379
另外注意,我们的从机是克隆过来的,所以bind的ip需要改正确:
输入命令:shift+g 到最后一行
redis 哨兵机制
我们设计如下四台机器的主从复制模式:
上述主从复制的模式如果备机挂了 ,没有问题,但是如果主机挂了,则整个集群就没有写入数据的能力了。
这从专业角度来说也就是主机有单点故障的问题。怎么解决这个问题,我们可以使用redis 提供的哨兵模式:
哨兵模式配置参数的含义:
属性名 | 说明 |
port | 哨兵模式的端口号 |
daemonize | 是否以后台服务的方式启动哨兵模式 默认是false |
pidfile | 配置哨兵模式的进程文件名 |
logfile | 日志文件的位置和名称 logfile 如果要配置 必须写绝对路径 |
dir | 哨兵模式的工作临时目录 |
sentinel monitor mymaster 127.0.0.1 6379 2 | 配置哨兵模式监控哪个redis 主从复制的集群 第一个参数mymaster 是监控的集群的自定义名称 127.0.0.1 主从集群中主机的ip地址 6379是主机的端口号 2 指 几个哨兵认为主机挂了 他就真的挂了 |
sentinel parallel-syncs mymaster1 | 指如果主机挂了之后,选一个新的备机当主机 , 备机当选为主机后,其他的备机要从新的主机上同步数据,这个参数就是配置同步数据的时候开启几个同步数据的服务 |
sentinel failover-timeout mymaster 180000 | 故障转移的超时时间 默认是3分钟 |
sentinel down-after-milliseconds mymaster 30000 | 配置当前哨兵什么条件才会认为 主机不可用了 30000 是30秒,也就是如果哨兵3分钟连不上主机, 哨兵就主观的认为主机已经挂了 |
主观掉线 客观掉线
修改过两个配置文件后,要启动哨兵模式:
redis 集群
咱们哨兵机制配置的主从复制默认 每台机器上都存在所有数据的备份。水平扩展不太方便。
redis 集群不光实现了主从复制 ,还实现了数据的分开存储。一个集群中可以有多个主从复制模式。一个主从复制模式就存储一块数据,另外一个 主从复制存储另外的数据。
redis 集群 配置的要求 一个集群中最少要有三个主从复制模式 。一个主从复制模式需要一主一备,最小的一个redis集群需要几台机器?6台。
redis 集群的配置文件:
port 7001
cluster-enabled yes
cluster-config-file nodes7001.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes
protected-mode no
pidfile /var/run/redis_7001.pid
属性名 | 说明 |
port | 端口号 |
cluster-enabled | 是否开启redis集群模式 |
cluster-config-file | 当前节点的集群的配置文件名称 这个文件不需要我们往文件中写东西,他的作用是在集群启动之后记录记录集群的一些信息,以便当前节点挂了重启之后 能把原 |
先的集群信息读回来 | |
cluster-node-timeout | 集群节点的超时时间 |
appendonly | 开启AOF日志模式 |
daemonize | 配置后台启动 |
pidfile | 记录当前节点运行起来之后的进程号 |
启动7001到7006 所有的redis服务:
查看集群管理的命令帮助:
执行创建集群的命令:
redis-cli --cluster create 192.168.144.10:7001 192.168.144.10:7002 192.168.144.10:7003 192.168.144.10:7004 192.168.144.10:7005 192.168.144.10:7006 --cluster-replicas 1
redis中 集群中插槽slot的意思:
redis 集群中共有16384个插槽。这些插槽你可以自己分配到不同的主从复制模式中 ,来达到把数据分开存储的目的。
集群管理的命令
查看集群的状态
查看集群信息:cluster info
查看集群节点:cluster nodes
添加集群节点
添加一个主机 192.168.144.10 :7007添加为主机:
redis-cli --cluster add-node 192.168.144.10:7007 192.168.144.10:7001
分配插槽命令
主机创建好之后 需要分配插槽才能存储数据:
redis-cli --cluster reshard 192.168.144.10:7004
添加备机命令
redis-cli --cluster add-node 192.168.144.10:7008
192.168.144.10:7002 --cluster-slave --cluster-master-id eeb2e42207cf7905735f7782fc443ca9f41ec7c7
修复集群命令
redis-cli --cluster fix 192.168.144.10:7005
注意:如果主机损坏需要把插槽重新分配,会丢失数据,所以尽量修复主机,如果数据不是很重要可以选择修复集群
以上就是linux下redis一些比较重要的操作了,制作不易看完还望点赞!!!❤❤❤