Redis 是一个key-value存储系统。Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sort ......
372
0
0
2023-02-12
目录过期删除策略设置Redis中key的过期时间 (单位:秒)常见的三种过期删除策略Redis使用用的过期删除策略Redis的定期删除的流程内存淘汰策略设置Redis最大运行内存Redis 内存淘汰策略有哪些?LRU 算法和 LFU 算法有什么区别?Redis 是如何实现 LRU 算法的?什么是 LFU 算法?Redis 是如何实现 LFU 算法的?过期删除 ......
425
0
0
2023-02-02
搬运,redis做消息队列的几种方法和优缺点从最简单的开始:List 队列首先,我们先从最简单的场景开始讲起。如果你的业务需求足够简单,想把 Redis 当作队列来使用,肯定最先想到的就是使用 List 这个数据类型。因为 List 底层的实现就是一个「链表」,在头部和尾部操作元素,时间复杂度都是 O(1),这意味着它非常符合消息队列的模型。如果把 List ......
419
0
0
2023-01-24
缓存雪崩和缓存穿透并不是一个概念缓存雪崩当缓存失效或缓存数据还没有准备就绪时,高并发请求接入时无法阻挡,从而接入数据库导致数据库宕机或者延迟,而数据库又被大量其他服务所依赖导致大面积服务崩溃,最终导致整个系统或网站的崩溃。解决方案:1、分布式锁:只有一个线程能获得锁,获得后判断缓存数据是否存在,不存在获取缓存数据并更新缓存,存在获得数据,其他线程阻塞,更新缓 ......
373
0
0
2023-01-18
前言前几天我在知乎看到一个问题:如何建立自己的知识体系和观点?^1^如何建立自己的知识体系和观点?在一篇高赞回答中讲述了建立“外脑”是关键,文章观点认为:大脑是用来思考的,不是用来记忆的。查理芒格我很认同这样的看法,我的账号名为“杨同学technotes”,technotes^2^ 源于我最近几年总结的 github 项目,意为“技术笔记”,这便是我的“外脑 ......
342
0
0
2023-01-14
作者:贲绍华爱可生研发中心工程师,负责项目的需求与维护工作。其他身份:柯基铲屎官。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。一、集群架构的一些基本概念当我们只使用一台 Redis 实例也就是 Single 架构时,需要考虑一些非常实际的问题,如:单节点一但宕机则业务停摆、单节点的容量不可能是无限制的、性能 ......
399
0
0
2023-01-08
大家好,我是杰哥。Redis 现在应该是各大厂标配了,不过可能很多人只懂得怎么用,但对其原理不甚了解,今天我们就用图解的形式来深入了解 Redis 高性能,高可用的秘密什么是 Redis?Redis(REmote DIctionary Service)是一个开源的键值对数据库服务器。Redis 更准确的描述是一个数据结构服务器。Redis 的这种特殊性质让它 ......
409
0
0
2023-01-05
一、SDS介绍Redis没有使用C语言传统的字符串表示(以空字符结尾的字符串数组,以下简称C字符串), 而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS作为Redis默认的字符串表示。在 Redis 里面, C字符串只会作为字符串字面量(string literal), 用在一些无须对字符串值进 ......
486
0
0
2023-01-03
Redis网络连接层Redis取自Remote Dictionary Server,顾名思义,Redis是运行在网络环境之上的。Redis目前支持3种网络连接类型:TCP:默认监听TCP 6379端口,接收网络请求,提供服务。Unix Socket:可以用作测试,以及使用Unix Socket做配置变更等。TLS:使用TLS加密的网络连接,可以防止网络链路上 ......
476
0
0
2022-12-31
Hello 大家好,我是阿粉,Redis 作为工作中不可缺少的缓存组件,相信很多小伙伴都会使用到,我们日常使用的时候都是通过代码或者客户端去链接 Redis 服务器来操作数据的。那么一条简单的set name ziyou 命令是如何执行的,中间都经历了哪些过程想必很少会有人去了解。今天阿粉就带大家看一下一条简单的set name ziyou 命令是如何执行的 ......
354
0
0
2022-12-28
今天我们讨论一下 redis 面试高频题,为什么 Redis 那么快?首先,你可以先想一下答案,我先说下大家普遍的答案:单线程基于内存操作,速度快I/O 多路复用相信很多人第一时间回答出来上面这些,那么面试官一般会接着问,所有的操作都是单线程吗?单线程为什么快呢,什么是 I/O 多路复用?很多人这个时候就会 G 了。今天我们好好聊聊,首先我们要知道,我们常说 ......
405
0
0
2022-12-23
为什么要有过期策略?因为我们的redis是一个内存型数据库,我们的数据都是放在内存里面的!但是内存是有大小的! 比如,redis有个很重要的配置文件,redis.conf,里面有个配置# maxmemory <bytes> //redis占用的最大内存 如果我们不淘汰,那么它的数据就会满,满了肯定就不能再放数据,发挥不了redis的作用! 比如 ......
352
0
0
2022-12-22
分布式锁其实就是,控制分布式系统不同进程共同访问共享资源的一种锁的实现。如果不同的系统或同一个系统的不同主机之间共享了某个临界资源,往往需要互斥来防止彼此干扰,以保证一致性。 本篇内容包括:关于 Redis 与 分布式锁,Redis 分布式锁的问题及解决方式,Redis 中的 Lua 脚本 以及 Redis 中的 RedLock 算法!文章目录一、关于 Re ......
332
0
0
2022-12-20
在开发测试环境中,我们一般搭建Redis的单实例来应对开发测试需求,但是在生产环境,如果对可用性、可靠性要求较高,则需要引入Redis的集群方案。虽然现在各大云平台有提供缓存服务可以直接使用,但了解一下其背后的实现与原理总还是有些必要(比如面试), 本文就一起来学习一下Redis的几种集群方案。Redis支持三种集群方案主从复制模式Sentinel(哨兵)模 ......
379
0
0
2022-12-17
一、引言在最近的业务中,笔者接到了一个需要处理约十万条数据的需求。这些数据都以字符串的形式给到,并且处理它们的步骤是异步且耗时的(平均处理一条数据需要 25s 的时间)。如果以串行的方式实现,其耗时是相当长的:总耗时时间 = 数据量 × 单条数据处理时间 T = N * t (N = 100,000; t = 25s) 总耗时时间 = 2,500,000 秒 ......
350
0
0
2022-12-17