本文目录
1、Redis 是什么 有什么用
redis 是一个基于内存的 非关系型数据库 nosql 不仅仅是sql 关系型数据库
优点: 关系型数据库能够支持复杂的业务逻辑
缺点: 非关系型数据库
1.1 功能
- 缓存
- 简单的消息队列
- 分布式session共享
- 分布式锁
- 登录用户统计
- 排行榜/计数器
- 发布/订阅
- …
2、Redis 单机版安装
2.1 Linux (Centos 7)安装
2.1.1 解压文件
通过 tar -xvf来解压下载的redis文件
tar -xvf reids-5.0.4.tar.gz
2.1.2 编译Redis
要编译redis需要先安装 gcc,我们使用 yum命令来进行安装
yum install -y gcc
等gcc安装完成后,进入redis的目录(就是我们解压出来的那个目录),使用 make命令来进行编译
等编译ok后执行安装命令
make install
完成后,Linux版本的就安装完毕了
2.2 Windows 安装
windows上安装redis比较容易
- 如果是下载的zip压缩文件,直接解压缩就完了
- 如果下载的是msi文件,双击运行下一步
3、Redis服务的启动 客户端访问 常用配置
查看redis是否启动
ps -ef|grep redis
我们刚安装好,redis还未启动
3.1启动redis服务
redis-server redis.conf
当启动成功后,会出现下面这种情况
默认启动是在前台进行启动,如果想要把redis服务在后台启动的话,使用
ctrl + c 停止服务
当停止后修改 redis.conf文件,找到 daemonize,改成 yes即可
然后保存后再次启动redis服务,即可在后台运行
3.2 客户端访问
redis 自带客户端 redis-cli,我们使用这个客户端进行登录redis
redis-cli -h localhost -p 6379
redis的默认端口是 6379,且默认是没有密码的,如果要加上密码需要另外设置
3.3 常用配置
3.3.1 启动局域网ip地址连接
redis默认是只能本地连接,如果要启用的局域网的话,需要修改redis.conf配置
将bind后面的地址改成ipv4的地址即可
记住要重启 redis服务,可用redis-cli命令关闭redis,然后通过redis-server启动
redis-cli -h localhost -p 6379 shutdown
或者使用”进程杀“来关闭redis,但是要注意的是,这种方式容易造成数据的丢失
ps -ef | grep redis
找到redis运行的进程id在通过kill命令进行杀死进程
kill -9 xxxxxx
3.3.2 如何让局域网其他机器连接
需要关闭redis的保护模式
在redis.conf文件中,找到protected-mode 改为no就行
4、Redis的常用数据类型
redis支持丰富且复杂的数据类型
- String
- List
- Set
- Zset
- Hash
5、Redis 主从复制
如果只采用一台redis主机,可能存在 两个问题 ,redis的主从复制在一定程度上可以解决问题
- 不安全 ,万一宕机了 redis就不能提供服务了。
- 如果用户的访问量比较大, redis 效率也会变低。
redis 主从复制,需要配置一个主机和多个从机。 主机能够读数据和写数据,从机只能读数据。
做主从复制,就需要整一个主机和一个备机,主机与备机需要安装Redis和启动Redis的服务
需要在主机与备机的redis.conf中做出修改
- bind 改成主机的ip
- 关闭安全模式(protected-mode no)
- daemonize yes
- appendonly yes
另外在备机的配置文件中要加一段设置
slaveof 主机地址 6379
PS: 我们的备机是克隆过来的,所以bind的ip需要改正确
6、Redis 哨兵机制
6.1 哨兵机制
我们设计如下四台机器的主从复制的模式:
上述主从复制的模式如果备机挂了 ,没有问题,但是如果主机挂了,则整个集群就没有写入数据的能力了。
这从专业角度来说也就是主机有单点故障的问题。
我们可以用哨兵模式来进行解决这个问题
哨兵模式配置参数:
6.2 主观掉线 客观掉线
修改过两个配置文件后,要启动哨兵模式:
redis-sentinel 26379/sentinel.conf
redis-sentinel 26380/sentinel.conf
7、Redis 集群
7.1 集群配置
咱们哨兵机制配置的主从复制默认 每台机器上都存在所有数据的备份。水平扩展不太方便。
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
启动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
7.2 插槽slot
redis 集群中共有16384个插槽。这些插槽你可以自己分配到不同的主从复制模式中 ,来达到把数据分开存储的目的。
7.3 集群管理的命令
7.3.1 查看集群的状态
7.3.2 添加集群节点
添加一个主机 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
参考 课上老师的笔记进行总结