随笔分类 - 中间件
摘要:在Redis的开发和运维过程中,由于对于Redis的某些特性没有真正合理地使用,会遇到一些棘手的问题,主要内容包括: Linux配置优化要点。 flushall/flushdb误操作快速恢复方法。 安全的Redis如何设计。 处理bigkey的方案与最佳实践。 寻找热点key。 1、Linux配置优
阅读全文
摘要:缓存能够有效地加速应用的读写速度,同时也可以降低后端负载,对日常应用的开发至关重要。但是将缓存加入应用架构后也会带来一些问题,对这些问题介绍缓存使用技巧和设计方案,包含如下内容: 缓存的收益和成本分析。 缓存更新策略的选择和使用场景。 缓存粒度控制方法。 穿透问题优化。 无底洞问题优化。 雪崩问题优
阅读全文
摘要:Redis Cluster是Redis的分布式解决方案,在3.0版本正式推出,有效地解决了Redis分布式方面的需求。当遇到单机内存、并发、流量等瓶颈时,可以采用Cluster架构方案达到负载均衡的目的。 3.0之前,Redis分布式方案一般有两种: 客户端分区方案,优点是分区逻辑可控,缺点是需要自
阅读全文
摘要:Redis的主从复制模式下,一旦主节点由于故障不能提供服务,需要人工将从节点晋升为主节点,同时还要通知应用方更新主节点地址,对于很多应用场景这种故障处理的方式是无法接受的。从Redis 2.8开始正式提供了Redis Sentinel(哨兵)架构来解决这个问题。 1、Sentinel基本概念 由于对
阅读全文
摘要:1、内存消耗 Redis内存消耗在哪些方面。有些内存消耗是必不可少的,而有些可以通过参数调整和合理使用来规避内存浪费。 内存消耗可以分为进程自身消耗和子进程消耗。 1.1、内存使用统计 了解Redis自身使用内存的统计数据,可通过执行info memory命令获取内存相关指标。 10.1.1.11:
阅读全文
摘要:Redis是典型的单线程架构,所有的读写操作都是在一条主线程中完成的。当Redis用于高并发场景时,这条线程就变成了它的生命线。如果出现阻塞,哪怕是很短时间,对于应用来说都是噩梦。导致阻塞问题的场景大致分为内在原因和外在原因: 内在原因包括:不合理地使用API或数据结构、CPU饱和、持久化阻塞等。
阅读全文
摘要:在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他机器,满足故障恢复和负载均衡等需求。Redis也是如此,它为我们提供了复制功能,实现了相同数据的多个Redis副本。复制功能是高可用Redis的基础,哨兵和集群也都是在复制的基础上实现高可用的。 1、配置复制 从节点配置文件可能要配置
阅读全文
摘要:Redis支持RDB和AOF两种持久化机制,持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复。 1、RDB RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。 1.1、触发机制 手动触发分别对应save
阅读全文
摘要:1、客户端通信协议 几乎所有的主流编程语言都有Redis的客户端(http://redis.io/clients),不考虑Redis非常流行的原因,如果站在技术的角度看原因还有两个: 第一,客户端与服务端之间的通信协议是在TCP协议之上构建的。 第二,Redis制定了RESP(REdis Seria
阅读全文
摘要:Redis提供的5种数据结构已经足够强大,但除此之外,Redis还提供了诸如慢查询分析、功能强大的Redis Shell、Pipeline、事务与Lua脚本、Bitmaps、HyperLogLog、发布订阅、GEO等附加功能。 慢查询分析:通过慢查询分析,找到有问题的命令进行优化。 Redis Sh
阅读全文
摘要:1、Redis基础 1.1、redis-cli操作redis的方式 redis-cli有两种方式连接Redis服务器,并进行数据操作。 第一种方式是将命令作为redis-cli的参数执行(命令行方式)。 第二种方式是不带参数运行redis-cli,进入交互模式(交互式方式)。 redis-cli [
阅读全文
摘要:Redis约定次版本号(即第一个小数点后的数字)为偶数的版本是稳定版(如2.8版、3.0版),奇数版本是非稳定版(如2.7版、2.9版),生产环境下一般需要使用稳定版本。 1、编译安装redis(单机模式) 1.1、部署环境 软件版本 Redis:redis-6.0.16.tar.gz 系统环境 1
阅读全文
摘要:Redis是一种基于键值对(key-value)的NoSQL数据库。 与很多键值对数据库不同的是,Redis中的值可以是由string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、HyperLogLog、GEO(地理信息定位)等多种数据
阅读全文
摘要:keepalived,原生设计的目的为了高可用ipvs服务。 基于vrrp协议完成IP地址飘移。 基于ipvs模块生成ipvs规则(在配置文件中预先定义)。 检查器根据后端服务器的状态,动态的调整ipvs规则。 keepalived通过调用接口,可以执行外部脚本,并根据外部脚本的执行状态码,可以动态
阅读全文
摘要:1、keepalived配置文件的概述 keepalived.conf是keepalived的配置文件。 关键字被放置在块和子块的层次结构中,每一层由“{”和“}”对分隔。 注释符:'#'或'!'。 include:允许主配置文件加载其他配置文件。 #FILENAME可以是一个绝对或相对路径,并且可
阅读全文
摘要:https://www.keepalived.org https://github.com/acassen/keepalived 1、安装keepalived(yum) keepalived主网站不提供任何Linux发行版的软件包,它只提供源代码和代码库。 大多数Linux发行版都提供keepali
阅读全文
摘要:1、高可用概述 HA Cluster实现方案: heartbeat和corosync一般用于高可用任何常见服务的。 keepalived原生设计的目的是为了高可用ipvs。 网络分区(Network partition) 隔离类型有两种: node:STONITH(Shooting The Othe
阅读全文
摘要:1、HAProxy简介 HAProxy是使用C语言编写的开源软件,提供双机热备、高可用、负载均衡、虚拟主机、基于TCP(四层)和HTTP(七层)的应用代理、图形界面查看信息等功能。 HAProxy配置简单、维护方便,而且可以对后端服务器进行健康状态检测(相当于keepalived健康状态检测)。 当
阅读全文
摘要:HAProxy管理指南(management.txt):version 2.5 https://www.haproxy.org/download/2.5/doc/management.txt 1、启动HAProxy HAProxy是一个多线程的、事件驱动的、非阻塞守护进程。大多数时候它作为一个单独的
阅读全文
摘要:HAProxy配置手册(configuration.txt):version 2.5 2022/05/13 https://www.haproxy.org/download/2.5/doc/configuration.txt 1、HTTP介绍 当HAProxy在HTTP模式下运行时,请求和响应都被完
阅读全文

浙公网安备 33010602011771号