
Redis
文章平均质量分 97
Coding Farmer
这个作者很懒,什么都没留下…
展开
-
Redis数据结构-简单动态字符串
一、前言Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组,以下简称C字符串),而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS用作Redis的默认字符串表示,这样的好处是:获取存储的字符串长度时间复杂度从O(N)变为O(1)SDS的free属性就可以杜绝缓存溢出和 减少修改字符串时带来的内存重分配次数SDS的buf,len属性可以保证二进制安全兼容部分C字符串函数在Redis里面,C字符串只会作为字符串字面量原创 2021-08-06 20:30:48 · 356 阅读 · 0 评论 -
Redis 的 KEYS 命令不能乱用啊
KESY 命令时间复杂度: O(N) , 假设Redis中的键名和给定的模式的长度有限的情况下,N为数据库中key的个数。Redis Keys 命令用于查找所有符合给定模式 pattern 的 key尽管这个操作的时间复杂度是 O(N), 但是常量时间相当低。例如,在一个普通笔记本上跑Redis,扫描100万个key只要40毫秒。命令格式 KEYS patternWarning: 生产环境使用 KEYS 命令需要非常小心。在大的数据库上执行命令会影响性能。这个命令适合用来调试和特殊操作,像原创 2020-07-29 14:13:15 · 3286 阅读 · 0 评论 -
缓存穿透,缓存雪崩的四种解决方案
前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。解决方案有...转载 2019-04-03 10:20:41 · 4279 阅读 · 0 评论 -
Java代码操作Redis简单应用
引入Redis相关依赖:<!--commons-pool2不需要引入,会自动依赖--><dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>...原创 2019-04-09 11:33:20 · 216 阅读 · 0 评论 -
Redis集群常规操作
一、故障转移redis集群实现了高可用,当集群内少量节点出现故障时,通过故障转移可以保证集群正常对外提供服务。当集群里某个节点出现了问题,redis集群内的节点通过ping pong消息发现节点是否健康,是否有故障,其实主要环节也包括了 主观下线和客观下线;主观下线:指某个节点认为另一个节点不可用,即下线状态,当然这个状态不是最终的故障判定,只能代表这个节点自身的意见,也有可能存在误判...原创 2019-04-12 19:16:00 · 9269 阅读 · 0 评论 -
Spring整合Redis
依赖:<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version></dependency><dependency>...原创 2019-04-09 18:27:09 · 8717 阅读 · 0 评论 -
Springboot2.x整合Redis以及连接哨兵模式/集群模式
依赖:<!--spirngboot版本为2.x--><!-- 加载spring boot redis包,springboot2.0中直接使用jedis或者lettuce配置连接池,默认为lettuce连接池,这里使用jedis连接池 --><!-- 加载spring boot redis包 --><dependency> <gro...原创 2019-04-09 18:55:36 · 39360 阅读 · 5 评论 -
常用分布式锁实现方式总结
大多数互联网系统都是分布式部署的,分布式部署确实能带来性能和效率上的提升,但为此,我们就需要多解决一个分布式环境下,数据一致性的问题。当某个资源在多系统之间,具有共享性的时候,为了保证大家访问这个资源数据是一致的,那么就必须要求在同一时刻只能被一个客户端处理,不能并发的执行,否者就会出现同一时刻有人写有人读,大家访问到的数据就不一致了。一、我们为什么需要分布式锁?在单机时代,虽然不需要...原创 2019-04-18 17:47:23 · 762 阅读 · 0 评论 -
史上最全Redis高可用技术解决方案大全
Redis常见的几种主要使用方式: Redis 单副本 Redis 多副本(主从) Redis Sentinel(哨兵) Redis Cluster Redis 自研 Redis各种使用方式的优缺点:1、Redis单副本Redis 单副本,采用单个Redis节点部署架构,没有备用节点实时同步数据,不提供数据持久化和备份策略,适...转载 2019-06-16 21:01:29 · 219 阅读 · 0 评论 -
Redis查漏补缺:最易错过的技术要点大扫盲
引言为什么写这篇文章?博主的《分布式之消息队列复习精讲》得到了大家的好评,内心诚惶诚恐,想着再出一篇关于复习精讲的文章。但是还是要说明一下,复习精讲的文章偏面试准备,真正在开发过程中,还是脚踏实地,一步一个脚印,不要投机取巧。考虑到绝大部分写业务的程序员,在实际开发中使用redis的时候,只会setvalue和getvalue两个操作,对redis整体缺乏一个认知。又恰逢博主某个同事下周...转载 2019-04-03 10:12:33 · 4277 阅读 · 0 评论 -
Redis事务
什么是事务 事务是指一系列操作步骤,这一系列的操作步骤,要么完全地执行,要么完全地不执行。Redis中的事务(transaction)是一组命令的集合,至少是两个或两个以上的命令,redis事务保证这些命令被执行时中间不会被任何其他操作打断。 事务操作的命令 mutil 语法: multi 作用:标记一个事务的开始。事务内的多条命令会按照先后顺序被放进一个队列当...原创 2019-03-05 17:34:31 · 11317 阅读 · 2 评论 -
Redis单机安装
redis官网:https://redis.io/redis中文网:http://www.redis.cn/redis各个版本下载:http://download.redis.io/releases/本文使用:redis使用3.2.9版本wgethttp://download.redis.io/releases/redis-3.2.9.tar.gz tar -zxvf red...原创 2019-02-19 15:17:13 · 13158 阅读 · 0 评论 -
Redis的RDB和AOF持久化方式
持久化概述持久化可以理解为存储,就是将数据存储到一个不会丢失的地方,如果把数据放在内存中,电脑关闭或重启数据就会丢失,所以放在内存中的数据不是持久化的,而放在磁盘就算是一种持久化。Redis的数据存储在内存中,内存是瞬时的,如果linux宕机或重启,又或者Redis崩溃或重启,所有的内存数据都会丢失,为解决这个问题,Redis提供两种机制对数据进行持久化存储,便于发生故障后能迅速恢复数据。...原创 2019-02-19 16:58:12 · 1297 阅读 · 0 评论 -
Redis主从复制
Redis主从复制前言通过持久化功能,Redis保证了即使在服务器重启的情况下也不会丢失(或少量丢失)数据,但是由于数据是存储在一台服务器上的,如果这台服务器出现故障,比如硬盘坏了,也会导致数据丢失。为了避免单点故障,我们需要将数据复制多份部署在多台不同的服务器上,即使有一台服务器出现故障其他服务器依然可以继续提供服务。这就要求当一台服务器上的数据更新后,自动将更新的数据同步到其他服务...原创 2019-02-19 18:56:57 · 15460 阅读 · 2 评论 -
Redis高可用Sentinel哨兵
哨兵模式前言Sentinel哨兵是redis官方提供的高可用方案,可以用它来监控多个Redis服务实例的运行情况。Redis Sentinel 是一个运行在特殊模式下的Redis服务器。Redis Sentinel是在多个Sentinel进程环境下互相协作工作的。Sentinel系统有三个主要任务:监控:Sentinel不断的检查主服务和从服务器是否按照预期正常工作。 提醒:被监控的...原创 2019-02-20 16:35:15 · 26415 阅读 · 1 评论 -
深入 Redis 主从复制的原理详解
文章目录:1、复制过程2、数据间的同步3、全量复制4、部分复制5、心跳6、异步复制复制原理1.复制过程复制的过程步骤如下:1、从节点执行 slaveof 命令2、从节点只是保存了 slaveof 命令中主节点的信息,并没有立即发起复制3、从节点内部的定时任务发现有主节点的信息,开始使用 socket 连接主节点4、连接建立成功后,发送 ping ...转载 2019-03-28 17:18:37 · 4667 阅读 · 2 评论 -
Redis集群介绍以及搭建
主从:通过持久化功能,Redis保证了即使在服务器重启的情况下也不会损失(或少量损失)数据,因为持久化会把内存中数据保存到硬盘上,重启会从硬盘上加载数据。。但是由于数据是存储在一台服务器上的,如果这台服务器出现硬盘故障等问题,也会导致数据丢失。为了避免单点故障,通常的做法是将数据库复制多个副本以部署在不同的服务器上,这样即使有一台服务器出现故障,其他服务器依然可以继续提供服务。为此, Re...原创 2019-04-11 16:12:07 · 324 阅读 · 0 评论 -
Redis数据类型操作命令及其常用命令
(一)Redis基本操作命令 沟通命令,查看状态 ping 返回 PONG 解释:输入ping,redis给我们返回PONG,表示redis服务运行正常 查看当前数据库中key的数目:dbsize 语法:dbsize 作用:返回当前数据库的 key 的数量。 返回值:数字,key的数量 先查4...原创 2019-02-22 12:46:30 · 19035 阅读 · 0 评论