Memcached redis
文章平均质量分 95
dz45693
我是一个软件开发人员,有较强的责任心,是一个典型的技术爱好者。在此希望能认识更多好朋友。
展开
-
Redis 高可用篇:你管这叫 Sentinel 哨兵集群原理
我们知道「主从复制是高可用的基石」,从库宕机依然可以将请求发送给主库或者其他从库,但是 Master 宕机,只能响应读操作,写请求无法再执行。所以主从复制架构面临一个严峻问题,主库挂了,无法执行「写操作」,无法自动选择一个 Slave 切换为 Master,也就是无法故障自动切换。深夜与女朋友么么哒……(此处省略 10000 字),突然宕机,总不能提起裤子从床上爬起来手工进行主从切换,再通知其他程序员把地址重新改成新主库上线。如此一折腾自己已被女友切换成前男友了,万万使不得。所以我们必须有一个高可用的方案,转载 2022-07-13 16:41:52 · 1161 阅读 · 0 评论 -
Redis 日志篇:无畏宕机快速恢复的杀手锏
在《Redis 核心篇:唯快不破的秘密》中,「码哥」揭秘了 Redis 五大数据类型底层的数据结构、IO 模型、线程模型、渐进式 rehash 掌握了 Redis 快的本质原因。接着,在《Redis 日志篇:无畏宕机与快速恢复的杀手锏》中揭晓了当 Redis 发生宕机可以通过重新读取 RDB 快照和执行 AOF 日志实现快速恢复的高可用手段。高可用有两个含义:一是数据尽量不丢失,二是服务尽可能提供服务。 AOF 和 RDB 保证了数据持久化尽量不丢失,而主从复制就是增加副本,一份数据保存到多个实例上。即使有转载 2022-07-13 16:07:20 · 1388 阅读 · 0 评论 -
Redis 核心篇:唯快不破的秘密
学习一个技术,通常只接触了零散的技术点,没有在脑海里建立一个完整的知识框架和架构体系,没有系统观。这样会很吃力,而且会出现一看好像自己会,过后就忘记,一脸懵逼。跟着「码哥字节」一起吃透 Redis,深层次的掌握 Redis 核心原理以及实战技巧。一起搭建一套完整的知识框架,学会全局观去整理整个知识体系。系统观其实是至关重要的,从某种程度上说,在解决问题时,拥有了系统观,就意味着你能有依据、有章法地定位和解决问题。全景图可以围绕两个维度展开,分别是:应用维度:缓存使用、集群运用、数据结构的巧妙使用系统维度:可转载 2022-07-13 16:04:05 · 1096 阅读 · 0 评论 -
Redis 内存优化神技,小内存保存大数据
我们应该从 Redis 是如何保存数据的原理展开,分析键值对的存储结构和原理。从而继续延展出每种数据类型底层的数据结构,针对不同场景使用更恰当的数据结构和编码实现更少的内存占用。为了保存数据, Redis 需要先申请内存,数据过期或者内存淘汰需要回收内存,从而拓展出内存碎片优化。最后,说下 key、value 使用规范和技巧、 Bitmap 等高阶数据类型,运用这些技巧巧妙解决有限内存去存储更多数据难题……这一套组合拳下来直接封神。具体详情,且看「码哥」一一道来。主要优化神技如下:在优化之前,我们先掌握 R转载 2022-07-13 12:13:54 · 1209 阅读 · 0 评论 -
Redis 实战篇:巧用数据类型实现亿级数据统计
在移动应用的业务场景中,我们需要保存这样的信息:一个 key 关联了一个数据集合,同时还要对集合中的数据进行统计排序。常见的场景如下:给一个 userId ,判断用户登陆状态;两亿用户最近 7 天的签到情况,统计 7 天内连续签到的用户总数;统计每天的新增与第二天的留存用户数;统计网站的对访客(Unique Visitor,UV)量最新评论列表根据播放量音乐榜单通常情况下,我们面临的用户数量以及访问量都是巨大的,比如百万、千万级别的用户数量,或者千万级别、甚至亿级别的访问信息。所以,我们必须要选择能够非常高转载 2022-07-13 12:07:36 · 1780 阅读 · 0 评论 -
Redis 很屌,不懂使用规范就糟蹋了
通过 Redis 为什么这么快?这篇文章我们知道 Redis 为了高性能和节省内存费劲心思。所以,只有规范的使用 Redis,才能实现高性能和节省内存,否则再屌的 Redis 也禁不起我们瞎折腾。Redis 使用规范围绕如下几个纬度展开:键值对使用规范;命令使用规范;数据保存规范;运维规范。有两点需要注意:好的 命名,才能提供可读性强、可维护性高的 key,便于定位问题和寻找数据。要避免出现 、选择高效的序列化和压缩、使用对象共享池、选择高效恰当的数据类型(可参考《Redis 实战篇:巧用数据类型实现亿级转载 2022-07-13 11:44:44 · 1004 阅读 · 0 评论 -
Redis 实战篇:巧用 Bitmap 实现亿级海量数据统计
在移动应用的业务场景中,我们需要保存这样的信息:一个 key 关联了一个数据集合。常见的场景如下:给一个 userId ,判断用户登陆状态;显示用户某个月的签到次数和首次签到时间;两亿用户最近 7 天的签到情况,统计 7 天内连续签到的用户总数;通常情况下,我们面临的用户数量以及访问量都是巨大的,比如百万、千万级别的用户数量,或者千万级别、甚至亿级别的访问信息。所以,我们必须要选择能够非常高效地统计大量数据(例如亿级)的集合类型。如何选择合适的数据集合,我们首先要了解常用的统计模式,并运用合理的数据类型来解转载 2022-07-13 11:27:57 · 1270 阅读 · 0 评论 -
Redis Scan 原理解析与踩坑
主要分析了 Redis Scan 命令基本使用和具体实现,包括 Count 参数与 Scan 总耗时的关系,以及核心的逆二进制迭代算法分析。1. 概述由于 Redis 是单线程在处理用户的命令,而 Keys 命令会一次性遍历所有 Key,于是在 命令执行过程中,无法执行其他命令。这就导致如果 Redis 中的 key 比较多,那么 Keys 命令执行时间就会比较长,从而阻塞 Redis。所以很多教程都推荐使用 Scan 命令来代替 Keys,因为 Scan 可以限制每次遍历的 key 数量。转载 2021-11-27 13:35:35 · 7933 阅读 · 2 评论 -
Redis 核心篇:唯快不破的秘密
学习一个技术,通常只接触了零散的技术点,没有在脑海里建立一个完整的知识框架和架构体系,没有系统观。这样会很吃力,而且会出现一看好像自己会,过后就忘记,一脸懵逼。跟着「码哥字节」一起吃透 Redis,深层次的掌握 Redis 核心原理以及实战技巧。一起搭建一套完整的知识框架,学会全局观去整理整个知识体系。系统观其实是至关重要的,从某种程度上说,在解决问题时,拥有了系统观,就意味着你能有依据、有章法地定位和解决问题。Redis 全景图全景图可以围绕两个纬度展开,分别是:应用纬度:缓存使用、集转载 2021-01-26 21:14:51 · 1140 阅读 · 0 评论 -
图解Redis之数据结构篇——压缩列表
前言同整数集合一样压缩列表也不是基础数据结构,而是 Redis 自己设计的一种数据存储结构。它有点儿类似数组,通过一片连续的内存空间,来存储数据。不过,它跟数组不同的一点是,它允许存储的数据大小不同。一、压缩列表听到“压缩”两个字,直观的反应就是节省内存。之所以说这种存储结构节省内存,是相较于数组的存储思路而言的。我们知道,数组要求每个元素的大小相同,如果我们要存储不同...转载 2019-08-06 13:57:45 · 2029 阅读 · 0 评论 -
一文了解:Redis事务
Redis事务事务提供了一种"将多个命令打包,一次性提交并按顺序执行"的机制,提交后在事务执行中不会中断。只有在执行完所有命令后才会继续执行来自其他客户的消息。Redis中的使用Redis通过multi,exec,discard,watch实现事务功能。multi:开始事务 exec:提交事务并执行 discard:取消事务 watch:事务开始之前监视任意数量的键>...转载 2019-08-06 13:25:24 · 2210 阅读 · 0 评论 -
Redis偶发连接失败案例分析
【作者】张延俊:携程技术保障中心资深DBA,对数据库架构和疑难问题分析排查有浓厚的兴趣。寿向晨:携程技术保障中心高级DBA,主要负责携程Redis及DB的运维工作,在自动化运维,流程化及监控排障等方面有较多的实践经验,喜欢深入分析问题,提高团队运维效率。【问题描述】 生产环境有一个Redis会偶尔发生连接失败的报错,报错的时间点、客户端IP并没有特别明显的规律,过一会儿,报错会自动恢...转载 2018-10-15 16:48:47 · 2019 阅读 · 0 评论 -
redis如何删除过期数据
随着nosql风潮兴起,redis作为当中一个耀眼的明星,也越来越多的被关注和使用,我在工作中也广泛的用到了redis来充当cache和key-value DB,但当大家发现数据越来越多时,不禁有些担心,redis能撑的住吗,虽然官方已经有漂亮的benchmark,自己也可以做做压力测试,但是看看源码,也是确认问题最直接的办法之一。比如目前我们要确认的一个问题是,redis是如何删除过期数据的转载 2017-04-21 10:45:02 · 6792 阅读 · 2 评论 -
Windows Server AppFabric 缓存(微软分布式缓存解决方案)
主要介绍一下Windows Server AppFabric特点,详细的介绍及代码参照MSDN,这里就不多此一举了。(同类产品Memcahed) Windows Server AppFabric 扩展了 Windows Server 以为 Web 应用程序和中间层服务提供增强的托管、管理和缓存功能。 AppFabric 托管功能向 Internet 信息服务 (IIS)、Window转载 2017-04-14 20:39:42 · 2292 阅读 · 0 评论 -
redis StackExchange 主备 实现 demo
网上关于redis高可用基本都是用redis-sentinel 哨兵 或者 redis cluster 集群来实现, 但是有没有更简单的方式,比如我现在就只有2个redis实例。我试验的结果是我们可用采用主备的方式来实现(我们的实际需求很简单,有2个redis实例分布在不同的计算机,在一个实例down掉后我们的应用程序有继续读写redis,主从配置可用手动修改)。需求很简单, 实现也就很简单。首先原创 2017-02-27 22:58:09 · 5091 阅读 · 0 评论 -
使用redis的setbit和bitcount来进行区间统计的坑
以前听过一个bitmap做统计的分享,最近又看了文章“使用Redis bitmaps进行快速、简单、实时统计” 和http://www.infoq.com/cn/articles/the-secret-of-bitmap/ 后对实现流程已经清楚了正好项目中有需要统计一个用户最近7天,30天,90天的发帖量,想来用这种方法是效率最高占用资源最少的。我在实际操作中确发现奇怪的问题,转载 2017-03-11 17:45:37 · 7222 阅读 · 2 评论 -
Memcached快递上手之C#
C# 操作Memcachedmemcached管理工具很多,这里简单介绍下一款常用管理工具——memadmin,基于Web的管理工具。memadmin是基于PHP的管理工具,所以前提是在windows环境下安装PHP环境。以前常用的PHP环境是WAMP,现在IIS7以上可以直接安装,极其简单。1、下载Web平台安装工具。地址:http://www.mic转载 2017-03-11 16:03:08 · 2242 阅读 · 0 评论 -
StackExchange.Redis通用封装类分享
阅读目录 ConnectionMultiplexer 封装 RedisHelper 通用操作类封 String类型的封装 List类型的封装 Hash类型的封装 SortedSet 类型的封装 key的管理 发布和订阅 其他 前两天朋友问我,有没有使用过StackExchange.Redis,问我要个封装类,由于之前都是使用ServiceStack.Re转载 2016-10-12 11:45:08 · 13372 阅读 · 12 评论 -
《Redis官方文档》用Redis构建分布式锁
用Redis构建分布式锁在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段。 有很多三方库和文章描述如何用Redis实现一个分布式锁管理器,但是这些库实现的方式差别很大,而且很多简单的实现其实只需采用稍微增加一点复杂的设计就可以获得更好的可靠性。 这篇文章的目的就是尝试提出一种官方权威的用Redis实现分布式锁管理器的算法,我们把这个算法称为RedLock,我们相信这个算转载 2017-01-05 18:22:38 · 1871 阅读 · 0 评论 -
redis sentinel部署(Windows下实现)
Windows下Redis Sentinel部署(包含Redis Replication) Redis集群~windows下搭建Sentinel环境及它对主从模式的实际意义 Windows下Redis Sentinel部署(包含Redis Replication) 、准备条件[java] view plain copy 1、操作转载 2017-03-01 12:12:35 · 1988 阅读 · 0 评论 -
Redis 性能优化 配置说明
有关Redis的注意事项 网上已经有很多了,Redis常见的性能问题和解决方法Redis基本原理、优化和应用示例Redis作者谈Redis应用场景redis介绍蘑菇先生-缓存及Redis相关分析Redis架构设计 二、redis启动流程1.初始化server变量,设置redis相关的默认值2.读入配置文件,同时接收命令转载 2017-02-22 12:22:21 · 3494 阅读 · 0 评论 -
Redis性能问题排查解决手册
阅读目录:性能相关的数据指标内存使用率used_memory命令处理总数total_commands_processed延迟时间内存碎片率回收key总结性能相关的数据指标通过Redis-cli命令行界面访问到Redis服务器,然后使用info命令获取所有与Redis服务相关的信息。通过这些信息来分析文章后面提到的一些性能指标。info命令输出的数据可分为10个类别,分别是:转载 2017-02-22 17:06:43 · 3379 阅读 · 0 评论 -
用redis来实现Session保存的一个简单Demo
现在很多项目都用Redis(RedisSessionStateProvider)来保存Session数据,但是最近遇到一个比较典型的情况,需要把用户数据全部load到redis里面,在加上RedisSessionStateProvider本身的数据,造成很多内存的浪费。首先我们要知道Session会针对用户的数据,比如用户在chrome登录会保存一套信息,用ie登录有保存一套信息,用FF登录还是保原创 2017-03-03 14:18:59 · 3455 阅读 · 0 评论 -
StackExchange.Redis 管道 批量 高性能插入数据
现在用redis来做数据缓存的越来越多了,很多项目都有初始化redis数据的过程,由于初始化的数据比较大,那么该过程越快越好。这里我们以HashSet方法为例,这里我们推荐用HashEntry[] hashFields方法传入多个fields,应为它发送的HMSET指令即批量插入数据,另一个方法发送的HSET指令。在阅读StackExchange.Redis里面我确实没原创 2017-02-25 17:31:19 · 9154 阅读 · 0 评论