redis基础篇

1.redis介绍
redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。

redis的官网地址  redis中文官方网站

redis是一种高级的key:value存储系统,其中value支持五种数据类型:

1.字符串(strings)
2.字符串列表(lists)
3.字符串集合(sets)
4.有序字符串集合(sorted sets)
5.哈希(hashes)

关于key

1.key不要太长,尽量不要超过1024字节,这不仅消耗内存,而且会降低查找的效率;
2.key也不要太短,太短的话,key的可读性会降低;
3.在一个项目中,key最好使用统一的命名模式,例如user:10000:passwd。


 

2.redis的常用命令
常用命令       含义
config get *    查看配置
select 1          选择数据库
flushdb          清空当前数据库
flushall          清空所有数据库
move key 1    移动key
del key           删除
rename oldkey newkey    改名
expire key 10    设置过期时间
persist key    设置持久化
persist key    查询
persist key    判断是否存在
 

3.redis的安装

源码编译

解压redis-6.2.4压缩包

直接进行make&&make install

 

使用6379端口 

 

将if注释掉不然会报错 

 

 

 

 

 

4.redis主从模式 

 

 

 开启6379端口

 

 将从机配置文件添加主机ip及端口号

 

重启服务即可实现主从 

 

注:端口可任意、如6380端口 

 

5.哨兵模式
介绍
主从模式下,当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这种方式并不推荐,实际生产中,我们优先考虑哨兵模式。这种模式下,master宕机,哨兵会自动选举master并将其他的slave指向新的master。

在主从模式下,redis同时提供了哨兵命令redis-sentinel,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵进程向所有的redis机器发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。

哨兵可以有多个,一般为了便于决策选举,使用奇数个哨兵。哨兵可以和redis机器部署在一起,也可以部署在其他的机器上。多个哨兵构成一个哨兵集群,哨兵直接也会相互通信,检查哨兵是否正常运行,同时发现master宕机哨兵之间会进行决策选举新的master

哨兵模式的作用
通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器;
当哨兵监测到master宕机,会自动将slave切换到master,然后通过发布订阅模式通过其他的从服务器,修改配置文件,让它们切换主机;
然而一个哨兵进程对Redis服务器进行监控,也可能会出现问题,为此,我们可以使用多个哨兵进行监控。各个哨兵之间还会进行监控,这样就形成了多哨兵模式。

实验步骤
server1是master 

slave是server2、3

改配置文件将master设置为server1 

 将配置好的文件发送给两个slave

 

查看动态信息 

 

 

将server1的redis服务关闭

server2、3检测到开始选举新的master 

 

 

新的master为server2  

 

当server1重新启动时master不在恢复master身份  

 

6.集群模式
实验原理
Redis 的哨兵模式基本已经可以实现高可用,读写分离 ,但是在这种模式下每台 Redis 服务器都存储相同的数据,很浪费内存,所以在redis3.0上加入了 Cluster 集群模式,实现了 Redis 的分布式存储,对数据进行分片,也就是说每台 Redis 节点上存储不同的内容;

这里的6台redis两两之间并不是独立的,每个节点都会通过集群总线(cluster bus),与其他的节点进行通信。通讯时使用特殊的端口号,即对外服务端口号加10000。例如如果某个node的端口号是6379,那么它与其它nodes通信的端口号是16379。nodes之间的通信采用特殊的二进制协议。

对客户端来说,整个cluster被看做是一个整体,客户端可以连接任意一个node进行操作,就像操作单一Redis实例一样,当客户端操作的key没有分配到该node上时,Redis会返回转向指令,指向正确的node,这有点儿像浏览器页面的302 redirect跳转。

根据官方推荐,集群部署至少要 3 台以上的master节点,最好使用 3 主 3 从六个节点的模式。测试时,也可以在一台机器上部署这六个实例,通过端口区分出来。

实验1
启动集群、默认为6个 

六个集群平分16383个哈希槽,3个master、3个slave 

 

查看集群  

 

M30001对应S30004  

 

集群信息同发  

 

当关闭任意一个M,对应的S会跳转成M

重新启动,之前的M会变成S

 

 

实验2:增加集群数

修改配置文件

将集群个数改为8

 

 

 

将新增的加入到集群中 

 

新增的M未分配哈希槽 

 

添加30007对应的S   

 

 

取其他集群中的哈希槽  

 

 

 

测试、添加成功  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值