网站建设与管理2018,非交互式网站可以做商城吗,百度站长工具,北京市保障房建设投资中心网站首页前言 云淡天高#xff0c;落木萧萧#xff0c;一阵西北风掠过#xff0c;似寒刀。冬天渐渐变得更名副其实了#xff0c;“暖冬”的说法有点言过其实了。——碎碎念 微服务实战系列之Cache微服务实战系列之Nginx#xff08;技巧篇#xff09;微服务实战系列之Nginx微服务实…前言 云淡天高落木萧萧一阵西北风掠过似寒刀。冬天渐渐变得更名副其实了“暖冬”的说法有点言过其实了。——碎碎念 微服务实战系列之Cache微服务实战系列之Nginx技巧篇微服务实战系列之Nginx微服务实战系列之Feign微服务实战系列之Sentinel微服务实战系列之Token微服务实战系列之Nacos微服务实战系列之Gateway微服务实战系列之加密RSA微服务实战系列之签名Sign 此刻博主的“微服务实战系列”的队伍已满10员“悍将”但是如何征服微服务这座大山依然尚需时日。所谓一人一岗一责术业有专攻。就像攻城离不开挖地道的、投石块的、射箭的学习微服务自然也要“四面八方”面面俱到。 昨天一篇Cache突然给博主带来了灵感索性做个Cache系列吧分享各位盆友。 闲言少叙言归正传。今天主讲Cache第一悍将Redis从实战出发理论联系实际。 一、Redis入门 Redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。 是不是和Map类似先开始安装吧。
1. 快速安装
首先准备一个redis稳定的tar包上传至 /usr/local/redis
mkdir -p /usr/local/redis //创建目录
cd /usr/local/redis
tar -zxvf redis-7.0.10.tar.gz
cd /usr/local/redis/redis-7.0.10
make
make PREFIX/usr/local/redis install如看到“HintIts a good idea to run make...”那么恭喜你 修改必要配置
requirepass xxx //设置密码
daemonize yes //后台启动到此可以启动了
cd /usr/local/redis/bin
redis-server /usr/local/redis/redis-7.0.10/redis.conf2. 数据结构
既然是K-V数据库那必须有一对Key和Value。
2.1 Key
key一般使用字符串存储但是定义key时有两点注意
长度不能太长太长会占用内存影响效率长度也不宜太短太短影响可读性
2.2 Value
String-字符串Hash 哈希List 列表Set 集合Sorted_set 有序集合
二、单点模式
什么是单点顾名思义有且仅有一个实例即一个redis server。 单点模式最简单适合于业务量较小并发要求较低的场景比如 通过合理的定义K实现高热数据的缓存同步下次再请求时可从缓存读取。 当然此模式仍需关注内存占用率和单点故障。
三、集群模式
Redis集群是一种通过将多个Redis节点互联实现高可用、高性能的数据缓存方案。该方案可以促使Redis在不同节点上同时提供服务提高整体可靠性。 Redis集群主要有三种模式主从复制模式Master-Slave哨兵模式Sentinel)、Cluster模式。
1. 主从复制模式 主从复制从上图可以看出由Master负责写操作其Slave负责同步和读操作。 当然Slave也可以同步到多级Slave让我们把目光聚焦下图 那么如何实现主从复制呢命令如下
# 在Slave节点中新增replicaof 主节点IP和端口
replicaof Master_IP 63792. 哨兵模式
简单讲哨兵模式是在主从复制模式基础上新增了一个“岗哨”负责警卫。如Master发生故障立即在集群中指定新的Master实现服务高可用。哨兵一般使用Sentinel前序文章已讲过哦可回看。 如何实现哨兵模式呢 可指定其中一个Redis节点为哨兵同时配置sentinel一般在sentinel.conf文件完成
# 哨兵端口号
port 16379
# sentinel monitor 配置被监控主节点以及触发故障转移所需的最小哨兵节点数
sentinel monitor yourmaster IP 6379 1
# sentinel down-after-milliseconds 被监控主节点时效时间毫秒
sentinel down-after-milliseconds yourmaster 60000
# sentinel failover-timeout 被监控主节点故障转移超时时间毫秒
sentinel failover-timeout yourmaster 180000启动哨兵模式
redis-sentinel /usr/local/redis/sentinel/sentinel.conf3. Cluster模式
Cluster为实现缓存的高可用引入了数据分片的概念。可以理解为把数据拆为一份一份的数据单元根据一定算法CRC16完成数据拆分从而实现分布式存储。 那该如何实现呢准备多个Redis节点注意端口不同并参考如下配置redis.conf
# cluster节点端口号
port 16379
# 开启集群模式
cluster-enabled yes
# 节点超时时间
cluster-node-timeout 10000参考如下命令启动每个节点
redis-server /usr/local/redis/redis-7.0.10/redis.conf最后一键完成Cluster实现2主2从Cluster
redis-cli --cluster create IP:16379 IP:26379 IP:36379 IP:46379 --cluster-replicas 1结语
今天博主对Redis的基本使用进行了介绍无论什么架构、什么模式取决于业务的场景和发展趋势。工具服务于业务结合业务选择合适的工具是当下急需的能力。 好了缓存第一篇到此为止欢迎分享与讨论