
Redis
文章平均质量分 91
迎风追日
9 年软件开发经验,其中 3 年的项目开发负责人经验,擅长 java web 平台的开发,多年云计算、大数据领域面向教育、公安类 SaaS 应用开发背景;具有较强的业务分析能力,能够快速理解和分析复杂的业务逻辑;有较强的沟通协作能力,有异地开发经历;有较强的学习能力,且愿意尝试新技术。
展开
-
Redis 6.0多线程介绍
这是因为,Redis 处理请求时,网络处理经常是瓶颈,通过多个 IO 线程并行处理网络操作,可以提升实例的整体处理性能。这是因为,Redis 一直被大家熟知的就是它的单线程架构,虽然有些命令操作可以用后台线程或子进程执行(比如数据删除、快照生成、AOF 重写),但是,从网络 IO 处理到实际的读写命令处理,都是由单个线程完成的。如果你在实际应用中,发现 Redis 实例的 CPU 开销不大,吞吐量却没有提升,可以考虑使用 Redis 6.0 的多线程机制,加速网络处理,进而提升实例的吞吐量。原创 2025-02-25 22:20:46 · 576 阅读 · 0 评论 -
Redis必知必会
渐进式rehash执行时,除了根据键值对的操作来进行数据迁移,Redis本身还会有一个定时任务在执行rehash,如果没有键值对操作时,这个定时任务会周期性地(例如每100ms一次)搬移一些数据到新的哈希表中,这样可以缩短整个rehash的过程。两方面原因:1、内存利用率,数组和压缩列表都是非常紧凑的数据结构,它比链表占用的内存要更少。Redis是内存数据库,大量数据存到内存中,此时需要做尽可能的优化,提高内存的利用率。原创 2025-03-01 20:18:14 · 975 阅读 · 0 评论 -
Redis的SortedSet为什么使用跳表而不使用红黑树?
为什么 Redis 要用跳表来实现有序集合,而不是红黑树?Redis 中的有序集合是通过跳表来实现的,严格点讲,其实还用到了散列表。如果你去查看 Redis 的开发手册,就会发现,Redis 中的有序集合支持的核心操作主要有下面这几个:插入一个数据;删除一个数据;查找一个数据;按照区间查找数据(比如查找值在 [100, 356] 之间的数据);迭代输出有序序列。其中...原创 2020-01-13 15:26:10 · 1941 阅读 · 0 评论 -
redis字符串的实现
本篇会讲以下内容: Redis字符串的实现 Redis字符串的性能优势 Redis字符串的实现Redis虽然是用C语言写的,但却没有直接用C语言的字符串,而是自己实现了一套字符串。目的就是为了提升速度,提升性能,可以看出Redis为了高性能也是煞费苦心。Redis构建了一个叫做简单动态字符串(Simple Dynamic String),简称SDS1.SDS 代码结...转载 2019-12-10 20:57:17 · 246 阅读 · 0 评论 -
Redis的过期策略
在日常开发中,我们使用 Redis 存储 key 时通常会设置一个过期时间,但是 Redis 是怎么删除过期的 key,而且 Redis 是单线程的,删除 key 会不会造成阻塞。要搞清楚这些,就要了解 Redis 的过期策略和内存淘汰机制。Redis采用的是定期删除 + 懒惰删除策略。定期删除策略Redis 会将每个设置了过期时间的 key 放入到一个独立的字典中,默认每 100ms...转载 2019-12-08 11:42:48 · 411 阅读 · 0 评论 -
漫谈Redis 实现分布式锁 以及 Redisson 源码解析
# 产生背景Distributed locks are a very useful primitive in many environments where different processes must operate with shared resources in a mutually exclusive way.在某些场景中,多个进程必须以互斥的方式独占共享资源,这时用分布式...转载 2019-12-07 19:21:29 · 600 阅读 · 0 评论 -
redis统计独立用户访问量
众所周至,拼多多的待遇也是高的可怕,在挖人方面也是不遗余力,对于一些工作3年的开发,稍微优秀一点的,都给到30K的Offer当然,拼多多加班也是出名的,一周上6天班是常态,每天工作时间基本都是超过12个小时,也是相当辛苦的。废话不多说,今天我们来聊一聊拼多多的一道后台面试真题,是一道简单的架构类的题目:拼多多有数亿的用户,那么对于某个网页,怎么使用Redis来统计一个网站的用户访问数呢...转载 2019-12-06 08:48:47 · 1300 阅读 · 0 评论 -
Redis数据类型及其使用场景
1、String---字符串字符串类型是redis最基础的数据结构,首先键是字符串类型,而且其他几种结构都是在字符串类型基础上构建的,所以字符串类型能为其他四种数据结构的学习尊定基础。字符串类型实际上可以是字符串(简单的字符串、复杂的字符串(xml、json)、数字(整数、浮点数)、二进制(图片、音频、视频)),但最大不能超过512M。使用场景:缓存功能:字符串最经典的使用...转载 2019-04-14 16:35:09 · 346 阅读 · 0 评论 -
redis笔记
1、Redis 有哪些功能?数据缓存功能 分布式锁的功能 支持数据持久化 支持事务 支持消息队列: 简单地使用PUBLISH和SUBSCRIBE命令实现的发布订阅无法实现消息可靠送达。2、redis哨兵模式Redis Sentinel是redis的一种高可用方案,可以实现监控、通知、自动故障转移、服务发现(通过哨兵发现master)JedisSentinelPool3、r...原创 2019-03-06 11:22:18 · 159 阅读 · 0 评论 -
缓存相关问题及解决方式
1、缓存击穿。(缓存失效,导致Redis一直没有数据,而一直命中数据库。)那什么缓存击穿呢?在高并发情况下,同时查询一个 key 时,key 值由于某种原因突然失效(设置过期时间或缓存服务宕机),就会导致同一时间,这些请求都去查询数据库了。这种情况经常出现在查询热点数据的场景中。通常我们会在查询数据库时,使用排斥锁来实现有序地请求数据库,减少数据库的并发压力。例如使用redis的 se...原创 2019-01-27 16:06:10 · 433 阅读 · 0 评论 -
Redis--各个数据类型最大存储量
Strings类型:一个String类型的value最大可以存储512MLists类型:list的元素个数最多为2^32-1个,也就是4294967295个。Sets类型:元素个数最多为2^32-1个,也就是4294967295个。Hashes类型:键值对个数最多为2^32-1个,也就是4294967295个。Sorted sets类型:跟Sets类型相似。...翻译 2018-06-15 09:44:54 · 60116 阅读 · 0 评论 -
Redis-使用场景
Redis的7个应用场景Redis是一个key-value存储系统,现在在各种系统中的使用越来越多,大部分情况下是因为其高性能的特性,被当做缓存使用,这里介绍下Redis经常遇到的使用场景。Redis特性一个产品的使用场景肯定是需要根据产品的特性,先列举一下Redis的特点:读写性能优异持久化数据类型丰富单线程数据自动过期发布订阅分布式这里我...原创 2018-06-06 18:23:40 · 16051 阅读 · 4 评论 -
redis-持久化策略
Redis 持久化:提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF.RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis...转载 2018-05-30 11:02:12 · 262 阅读 · 0 评论 -
Redis安装部署使用
1、安装:(1)下载Redis安装包:https://download.youkuaiyun.com/download/qq_33885899/9970129(2)安装执行 tar -zxvf redis-4.0.1.tar.gz解压进入redis文件夹下:cd redis-4.0.1依次执行 make命令和make install命令(3)基本操作启动redis服务器redis-server退出redis操...原创 2018-05-22 16:07:19 · 237 阅读 · 0 评论