Redis Hashes 数据类型简述

Redis Hashes 是我们日常使用中比较高频的 Redis 数据类型,内部使用 Redis 字典结构存储,底层基于哈希表结构实现。 下面从哈希表节点,哈下表结构,Redis 字典,Redis 字典元素操作,Redis rehash 几点来简要概述。 一、Redis 哈希表节点 Redis 内部 ... »

Redis 字典结构细谈

Redis 字典底层基于哈希表实现。 一、哈希表结构 1、dictht: typedef struct dictht { dictEntry **table; //哈希表数组,存储具体的键值对元素,对象类型 dictEntry unsigned long size; //哈希表容量 unsigned ... »

深入了解Redis(7)-缓存穿透,雪崩,击穿

redis作为一个内存数据库,在生产环境中使用会遇到许多问题,特别是像电商系统用来存储热点数据,容易出现缓存穿透,雪崩,击穿等问题。所以实际运用中需要做好前期处理工作。 一、缓存雪崩 1、概念 缓存雪崩,是指在某一个时间段,缓存集中过期失效。其实这个挺好理解的,举个例子,假如我们把首页的热点数据都设 ... »

手把手教你AspNetCore WebApi:缓存(MemoryCache和Redis)

前言 这几天小明又有烦恼了,系统上线一段时间后,系统性能出现了问题,马老板很生气,叫小明一定要解决这个问题。性能问题一般用什么来解决呢?小明第一时间想到了缓存。 什么是缓存 缓存是实际工作中非常常用的一种提高性能的方法。 缓存可以减少生成内容所需的工作,从而显著提高应用程序的性能和可伸缩性。 缓存最 ... »

Redis 客户端 Jedis、lettuce 和 Redisson 对比

Redis 支持多种语言的客户端,下面列举了部分 Redis 支持的客户端语言,大家可以通过官网查看 Redis 支持的客户端详情。 C语言 C++ C# Java Python Node.js PHP Redis 是用单线程来处理多个客户端的访问,因此作为 Redis 的开发和运维人员需要了解 R ... »

Redis 的完整安装过程

Windos 版本安装 Redis 官方并不支持 Window 版本,但是微软公司在 Github 上维护了一个 Windows 版本的 Redis 项目,供 Windows 用户下载使用。 下载地址是:https://github.com/dmajkic/redis/downloads。 下载完之 ... »

Redis GEO 功能使用场景

本文来源:https://www.dazhuanlan.com/2020/02/05/5e3a0a3110649/ 背景 前段时间自己在做附近直播相关业务,其中有一个核心的点就是检索用户附近的主播,也是主要召回池。针对业务场景的特殊性,最后决定使用Redis的GEO技术来完成这个功能。主要考虑点在于 ... »

Redis 中 HyperLogLog 的使用场景

什么是基数估算 HyperLogLog 是一种基数估算算法。所谓基数估算,就是估算在一批数据中,不重复元素的个数有多少。 从数学上来说,基数估计这个问题的详细描述是:对于一个数据流 {x1,x2,...,xs} 而言,它可能存在重复的元素,用 n 来表示这个数据流的不同元素的个数,并且这个集合可以表 ... »

解Bug之路-记一次线上请求偶尔变慢的排查

解Bug之路-记一次线上请求偶尔变慢的排查 前言 最近解决了个比较棘手的问题,由于排查过程挺有意思,于是就以此为素材写出了本篇文章。 Bug现场 这是一个偶发的性能问题。在每天几百万比交易请求中,平均耗时大约为300ms,但总有那么100多笔会超过1s,让我们业务耗时监控的99.99线变得很尴尬。如 ... »

Redis 中 BitMap 的使用场景

BitMap BitMap 原本的含义是用一个比特位来映射某个元素的状态。由于一个比特位只能表示 0 和 1 两种状态,所以 BitMap 能映射的状态有限,但是使用比特位的优势是能大量的节省内存空间。 在 Redis 中,可以把 Bitmaps 想象成一个以比特位为单位的数组,数组的每个单元只能存 ... »

「Redis」字符串

原文链接:https://www.changxuan.top/?p=1109 简介 Redis 中自定义的字符串结构。 字符串是 Redis 中最常用的一种数据类型,在 Redis 中专门封装了一个字符串结构体——简单动态字符串(Simple Dynamic String, SDS)。其结构体如下: ... »

Redis 中的事务

Redis 事务简介 稍微了解 Redis 的朋友都知道,Redis 也提供了事务功能。但是 Redis 的事务和我们平时熟悉的关系型数据库中的事务是有区别的。 Redis 事务的本质是一组命令的集合:一个事务中所有命令都会被序列化到一个队列中,在事务执行过程,会按照顺序串行执行队列中的命令,这些命 ... »

redis基本操作

redis的基本操作 Redis 是一个高性能的key-value数据库, 支持主从同步, 完全实现了发布/订阅机制, 因此可以用于聊天室等场景. 主要表现于多个浏览器之间的信息同步和实时更新. 和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表 ... »

线上Redis高并发性能调优实践

项目背景 最近,做一个按优先级和时间先后排队的需求。用 Redis 的 sorted set 做排队队列。 主要使用的 Redis 命令有, zadd, zcount, zscore, zrange 等。 测试完毕后,发到线上,发现有大量接口请求返回超时熔断(超时时间为3s)。 Error日志打印的 ... »

小白也能看懂的Redis教学基础篇——redis神秘的数据结构

各位看官大大们,周末好! 作为一个Java后端开发,要想获得比较可观的工资,Redis基本上是必会的(不要问我为什么知道,问就是被问过无数次)。那么Redis是什么,它到底拥有什么神秘的力量,能获得众多公司的青睐?接下来就由小编我带大家来揭秘Redis的五种基本数据结构。 Redis是C语音编写的基 ... »

《闲扯Redis九》Redis五种数据类型之Set型

一、前言 Redis 提供了5种数据类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Zset(有序集合),理解每种数据类型的特点对于redis的开发和运维非常重要。 原文解析 Redis 中的 Set 是我们经常使用到的一种数据类型,根据使用方式的不同,可以应用到很 ... »

Redis 的 KEYS 命令不能乱用啊

KESY 命令 时间复杂度: O(N) , 假设Redis中的键名和给定的模式的长度有限的情况下,N为数据库中key的个数。 Redis Keys 命令用于查找所有符合给定模式 pattern 的 key 尽管这个操作的时间复杂度是 O(N), 但是常量时间相当低。例如,在一个普通笔记本上跑Redi ... »

Redis系列(九):Redis的事务机制

提到事务,相信大家都不陌生,事务的ACID四大特性,也是面试时经常问的,不过一般情况下,我们可能想到的是传统关系型数据库的事务,其实,Redis也是提供了事务机制的,本篇博客就来讲解下Redis的事务机制。 1. 事务演示 Redis的事务提供了一种将多个命令请求打包,然后一次性、按顺序性地执行多个 ... »

Redis服务之常用配置(二)

从上面的日中可以了解到redis做快照存储时,它会启动一个线程去存储快照,即便发生错误它也会每隔几秒去重复的执行存储快照的操作;其实上面的错误的原因是我们开启了stop-writes-on-bgsave-error这个选项,所以为了避免这种错误发生,我们可以把stop-writes-on-bgsa... ... »