内容大纲

  • redis 是什么 有什么用
  • redis 单机版安装
  • reids 服务的启动 客户端访问 常用的配置
  • redis的常用的数据类型
  • redis持久化机制
  • redis 数据恢复机制
  • redis 主从复制
  • redis 哨兵机制
  • redis 集群
  • 集群管理的命令


redis 是什么 有什么用

redis 是一个基于内存的 非关系型数据库 nosql 不仅仅是sql 关系型数据库优点: 关系型数据库能够支持复杂的业务逻辑 缺点:慢 非关系型数据库 。
功能:
1,缓存工具
2,简单的消息队列
3,分布式的session 共享
4,分布式锁
5,登录用户统计

redis 单机版安装

下载Xftp,连接好虚拟机,将下载好的redis压缩包复制到虚拟机opt文件夹下

linux 下链接redis linux redis使用_linux 下链接redis


解压缩:

linux 下链接redis linux redis使用_nosql_02


linux 下链接redis linux redis使用_nosql_03


下一步,我们要 编译redis,编译需要用到 linux下面的gcc套件。

linux 下链接redis linux redis使用_数据_04


下载gcc完成:

linux 下链接redis linux redis使用_redis_05


完毕之后 进入到redis的解压缩目录 ,然后执行make命令 编译:

linux 下链接redis linux redis使用_linux 下链接redis_06


编译好了:

linux 下链接redis linux redis使用_nosql_07


编译好之后就可以执行make install 安装:

linux 下链接redis linux redis使用_redis_08

reids 服务的启动 客户端访问 常用的配置

怎么查看redis 服务有没有启动?使用ps -ef|grep redis:

linux 下链接redis linux redis使用_linux 下链接redis_09


默认还没有启动 ,启动redis 需要使用redis-server 命令,需要进入redis的解压缩目录,因为启动redis-server的时候要指定使用redis配置文件:

linux 下链接redis linux redis使用_持久化_10


启动成功之后:

linux 下链接redis linux redis使用_数据_11


默认启动是在前台启动,我们如果想redis服务后端启动 ,使用ctrl+c停止服务。可以修改配置文件redis.conf,默认vi 没有语法高亮,我们使用yum install -y vim 安装vim工具 ,然后语法就可以高亮了:

linux 下链接redis linux redis使用_持久化_12


保存退出 再重新启动redis服务:

linux 下链接redis linux redis使用_linux 下链接redis_13


redis 也自带了客户端 redis-cli命令,命令的格式:

redis-cli -h localhost -p 6379

linux 下链接redis linux redis使用_redis_14


默认redis 只能本机连接 ,如果想启用局域网ip地址连接,我们需要修改redis .conf 下面配置:

linux 下链接redis linux redis使用_linux 下链接redis_15


不要忘记重启redis 服务,重启可以使用redis-cli命令先关闭redis ,然后再通过redis-server开启:

linux 下链接redis linux redis使用_持久化_16


获取也可以通过杀死进程的方式 来关闭redis ,但是这种方式容易造成数据丢失:

linux 下链接redis linux redis使用_linux 下链接redis_17


现在就可以通过ip访问了:

linux 下链接redis linux redis使用_数据_18


如果现在让局域网其他机器能够连上你的redis 还需要把redis的保护模式关闭:

linux 下链接redis linux redis使用_nosql_19

redis的常用的数据类型

redis常用的数据类型 有string,list,set,zset,hash

linux 下链接redis linux redis使用_linux 下链接redis_20


linux 下链接redis linux redis使用_持久化_21

redis持久化机制

redis中的数据默认是存到内存中的,存到内存中的数据 会不会丢失?不给他持久化到磁盘上,是有可能丢失的 。有的时候需要使用redis的持久化机制。
reids的持久化机制有两种 RDB AOF

RDB持久化机制

RDB持久化机制是redis默认采用的持久化机制,这种机制是全量备份的机制。每次执行持久化操作,redis都会把内存中所有数据读取一遍 ,然后存到磁盘上。

往磁盘同步数据 也可以手动执行redis的命令 ,save命令 ,另外一个是bgsave命令 。执行save命令或 者bgsave命令就会把内存中所有的数据 同步到磁盘的 dump.rdb文件中。

bgsave是 采用后台再开启一个子进程的方式来同步数据,他不会阻塞当前redis的主进程。现在一般都会采用bgsave的方式来同步数据,save很少用了。

linux 下链接redis linux redis使用_redis_22


linux 下链接redis linux redis使用_linux 下链接redis_23


RDB的默认 丢失数据的可能性是比较大的,如果对数据的持久化有更高的要求,可以使用AOF的机制去同步数据AOF 持久化机制是 采用增量备份的机制。 AOF的持久化机制是 有一个类似于日志文件,然后我们每次执行redis命令, 这些命令都会追加到这个类似的日志文件中。AOF的持久化文件 一般都会RDB的持久化文件要大。

redis 默认是没有开启AOF持久化机制的。

linux 下链接redis linux redis使用_数据_24


linux 下链接redis linux redis使用_数据_25


linux 下链接redis linux redis使用_数据_26


linux 下链接redis linux redis使用_linux 下链接redis_27

redis 数据恢复机制

RDB持久化机制和AOF持久化机制 能不能同时使用?可以的。

linux 下链接redis linux redis使用_持久化_28

redis 主从复制

如果只采用一台redis主机, 可能存在 两个问题 一个是 不安全 ,万一宕机了 redis就不能提供服务了。

另外一个问题如果用户的访问量比较大, redis 效率也会变低。使用redis 主从复制在一定程度上能解决这个问题。

redis 主从复制,需要配置一个主机和多个从机。 主机能够读数据和写数据,从机只能读数据。

我们做主从复制,整一个主机 192.168.144.10 ,一个备机 192.168.144.12 主机上需要有redis ,redis 需要启动服务, 备机也需要redis 启动服务。

主机需要改的地方:

linux 下链接redis linux redis使用_nosql_29


linux 下链接redis linux redis使用_nosql_30


linux 下链接redis linux redis使用_数据_31


linux 下链接redis linux redis使用_数据_32


从机也要修改以上配置,另外在从机中需要加一句话:

slaveof 192.168.144.10 6379

另外注意,我们的从机是克隆过来的,所以bind的ip需要改正确:

linux 下链接redis linux redis使用_持久化_33


输入命令:shift+g 到最后一行

linux 下链接redis linux redis使用_持久化_34

redis 哨兵机制

我们设计如下四台机器的主从复制模式:

linux 下链接redis linux redis使用_持久化_35


上述主从复制的模式如果备机挂了 ,没有问题,但是如果主机挂了,则整个集群就没有写入数据的能力了。

这从专业角度来说也就是主机有单点故障的问题。怎么解决这个问题,我们可以使用redis 提供的哨兵模式:

linux 下链接redis linux redis使用_nosql_36


哨兵模式配置参数的含义:

属性名

说明

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分钟连不上主机, 哨兵就主观的认为主机已经挂了

主观掉线 客观掉线

linux 下链接redis linux redis使用_linux 下链接redis_37


linux 下链接redis linux redis使用_redis_38


修改过两个配置文件后,要启动哨兵模式:

linux 下链接redis linux redis使用_nosql_39

redis 集群

linux 下链接redis linux redis使用_redis_40


咱们哨兵机制配置的主从复制默认 每台机器上都存在所有数据的备份。水平扩展不太方便。

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

记录当前节点运行起来之后的进程号

linux 下链接redis linux redis使用_nosql_41


启动7001到7006 所有的redis服务:

linux 下链接redis linux redis使用_linux 下链接redis_42


查看集群管理的命令帮助:

linux 下链接redis linux redis使用_nosql_43


执行创建集群的命令:

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个插槽。这些插槽你可以自己分配到不同的主从复制模式中 ,来达到把数据分开存储的目的。

linux 下链接redis linux redis使用_持久化_44

集群管理的命令

查看集群的状态

查看集群信息:cluster info
查看集群节点:cluster nodes

linux 下链接redis linux redis使用_数据_45


添加集群节点

添加一个主机 192.168.144.10 :7007添加为主机:

redis-cli --cluster add-node 192.168.144.10:7007 192.168.144.10:7001

linux 下链接redis linux redis使用_redis_46

分配插槽命令
主机创建好之后 需要分配插槽才能存储数据:

redis-cli --cluster reshard 192.168.144.10:7004

linux 下链接redis linux redis使用_持久化_47


添加备机命令

redis-cli --cluster add-node 192.168.144.10:7008
192.168.144.10:7002 --cluster-slave --cluster-master-id eeb2e42207cf7905735f7782fc443ca9f41ec7c7

linux 下链接redis linux redis使用_linux 下链接redis_48


修复集群命令

redis-cli --cluster fix 192.168.144.10:7005

注意:如果主机损坏需要把插槽重新分配,会丢失数据,所以尽量修复主机,如果数据不是很重要可以选择修复集群

以上就是linux下redis一些比较重要的操作了,制作不易看完还望点赞!!!❤❤❤