Redis
文章平均质量分 84
瞎胡扯
这个作者很懒,什么都没留下…
展开
-
Redis 阻塞原因
Redis是典型的单线程架构,所有的读写操作都是在一条主线程中完成的。当Redis用于高并发场景时,这条线程就变的极其重要。如果它出现阻塞,就会对应用带来致命的问题。当Redis出现阻塞时,可以从以下方面着手分析。原创 2022-12-15 14:59:21 · 959 阅读 · 1 评论 -
聊聊 Redis 高可用之持久化AOF和RDB分析
Redis 持久化概述Redis 是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将 Redis 中的数据以某种形式把内存中的数据保存到磁盘中;当 Redis 重启时,利用持久化文件实现数据恢复。除此之外,为了进行灾难备份,可以将持久化文件拷贝到一个远程位置。Redis 提供了两种不同的持久化方法来讲数据存储到硬盘上 :RDB:一种称为快照的方式,是 将某一时刻内存中的所有数据以快照的形式写入硬盘上。AOF:一种称为只追加文件的方式,它会是将每次执行的写命令以追加的原创 2021-04-10 17:41:49 · 203 阅读 · 0 评论 -
聊聊 Redis 为什么构建自己的简单动态字符串 SDS
我们知道,Redis 支持字符串、哈希、列表、集合和有序集合五种基本类型。那么我们如何把图片、音频、视频或者压缩文件等二进制数据保存到 Redis 中呢?之前在使用 Memcached 缓存这类数据时是把它们转换成 Base64 字符串后再进行保存的。在 Redis 中也可以使用同样的方式,但是,Redis 中的 字符串是支持直接存储二进制数据的,那么我们就聊聊他是如何实现的?简单动态字符串 ( SDS )Redis 是使用 C 语言编写的,但是,Redis 没有直接使用 C 语言自有的字符串类型,而是原创 2021-04-07 13:18:14 · 2213 阅读 · 5 评论 -
Redis 单线程为什么这么快
众所周知,Redis 在内存数据库领域内,可谓是独领风骚,应用非常广泛。这主要得益于其丰富的数据类型和极高的性能。我们可能也听说了,Redis 是单线程的,并且在面试中也会经常被问到 “为什么单线程的 Redis 性能这么快?”,这篇文章我们就聊聊此问题。首先,我们需要先领清楚一个事实,我们通常说的 Redis 是单线程,主要是指它的网络请求和执行命令的流程是单线处理的, 而整个 Redis Server 是多线程的 。比如持久化、lazyfree、集群数据同步等都是额外的线程处理的。所以,严格来说,原创 2021-03-24 15:35:31 · 209 阅读 · 0 评论 -
聊聊Redis键值存储结构以及Rehash机制
一、键值对的结构了解 Redis 朋友的都知道,Redis 是一种键值对 ( Key-Value Pair ) 数据库,在内存中键值对是以字典 ( Dict ) 的方式保存的,而字典的底层其实是通过 哈希表 来实现的。通过哈希表中的节点保存字典中的键值对。而这个哈希表的数据结构就是一个数组。也就是说当我们添加或修改数据时,只需要计算出键的哈希值,然后,跟数组的大小取模,就可以很快的定位到它所对应的哈希桶的位置。所以,哈希表的最大好处就是我们可用**O(1)**的时间复杂度来快速查找键值对。(如下图所示)原创 2021-03-19 17:22:46 · 1174 阅读 · 0 评论 -
Redis 安装
一、Redis 安装Redis 的安装方式非常简单,步骤如下所示:1、下载redis安装包在 Redis 官网上下载最稳定版本的源码,我们这里安装 5.0.12 版本shell > wget https://download.redis.io/releases/redis-5.0.12.tar.gz2、解压压缩包shell > tar -zxvf redis-5.0.12.tar.gz3、建立软连接shell > ln -s redis-5.0.12 redis说原创 2021-03-13 17:24:28 · 92 阅读 · 0 评论 -
Redis 初识
一、Redis 简介Redis 是一种基于键值对 (key-value) 的远程内存数据库,他不仅性能强劲,而且还具有复制特性以及未解决问题而生的独一无二的数据模型。与很多内存数据库不同的是,Redis 提供了5种不同类型的数据结构,格式各样的问题都可以很自然地映射到这些数据结构上。Redis 的数据结构致力于帮助用户解决问题,而不像其他数据库那样,要求用户扭曲问题来适应数据库。Redis 会将所有的数据库存放在内存中,所以他的读写性能非常惊人。不仅如此,它还可以将内存的数据利用RDB(快照)和 AO原创 2021-03-13 17:22:34 · 148 阅读 · 2 评论 -
redis 编译报致命错误:jemalloc/jemalloc.h:没有那个文件或目录
一、问题在 centOS7环境下安装redis-5.0.4时在编译阶段遇到了致命错误:jemalloc/jemalloc.h:没有那个文件或目录。二、原因分析在Redis的README.md有如下一段话:AllocatorSelecting a non-default memory allocator when building Redis is done by settingthe MALLOC environment variable. Redis is compiled and link原创 2021-03-06 15:14:50 · 9515 阅读 · 0 评论 -
通过 Redis 生成唯一顺序主键
在分布式项目中经常会用到生成唯一主键,或者生成顺序号,现通过Redis实现顺序号的生成。话不多说,直接上代码1、生成唯一主键工厂方法接口如下/** * 获取唯一序列工厂方法 */public interface SequenceFactory { /** * 根据指定的键 获取下一个序列 * @param seqKey 键值 * @return 返回唯一序列 */ long nextValue(String seqKey);原创 2020-06-13 14:10:07 · 1286 阅读 · 0 评论