Redis
文章平均质量分 74
hanchao5272
路漫漫其修远兮,吾将上下而求索。https://hanchao.blog.csdn.net/
展开
-
Redis:WRONGTYPE Operation against a key holding the wrong kind of value
相关连接:通过Canal保证某网站的Redis与MySql的数据自动同步1.错误信息redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding the wrong kind of value2.分析当前程序中key的操作类型,并不与redis库...原创 2018-01-13 14:46:17 · 98838 阅读 · 7 评论 -
Redis: 单线程模型、I/O多路复用、影响性能的因素(为什么这么快)、性能与QPS(到底有多快)
1.单线程架构Redis基于Reator模式开发了自己的网络事件处理器:文件事件处理器。其架构图如下:文件事件处理器的四部分:套接字、I/O多路复用程序、文件事件分派器和事件处理器。1.1.套接字Socket文件事件就是对套接字的抽象,每当一个套接字准备好执行连接、写入、读取、关闭等操作时,都会产生一个文件事件。因为一个Redis服务器会连接多个套接字,所以多个文件事件可能会并发出现...原创 2019-08-17 11:18:28 · 1917 阅读 · 1 评论 -
Redis:简介、数据结构、回收策略、持久化方式
简介Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置...原创 2019-08-16 13:01:04 · 1173 阅读 · 0 评论 -
Redis: lua脚本支持以及抢红包案例的简单实现
1.关于luaLua脚本可以调用大部分的Redis命令,Redis运行开发者通过编写脚本传入Redis,一次性执行多条命令。使用Lua脚本的好处可以参考pipeline:Redis: pipeline基本原理以及Jedis和Redisson的实现示例提升性能:减少多个命令在I/O上的耗时。原子操作:一个lua脚本内的多个命令的执行时原子操作。脚本复用:lua脚本会加载到redis内存中...原创 2019-08-20 18:08:44 · 1311 阅读 · 0 评论 -
Redis: pipeline基本原理以及Jedis和Redisson的实现示例
1.关于pipelinepipeline即管道的意思,在Redis中,它表示的是一次性执行多条命令。在原生模式下,每执行一次redis命令,都需要经过发送命令(I/O)、执行命令(内存)和返回结果(I/O))三个阶段。其中,主要耗时在发送命令与返回结果。在pipeline模式下,一次性执行多条命令,也只需要一次发送命令和一次返回结果。节省了大量花费在I/O上的耗时。...原创 2019-08-19 13:13:17 · 4894 阅读 · 0 评论 -
Redis: 缓存过期、缓存雪崩、缓存穿透、缓存击穿(热点)、缓存并发(热点)、多级缓存、布隆过滤器
1.缓存过期缓存过期:在使用缓存时,可以通过TTL(Time To Live)设置失效时间,当TTL为0时,缓存失效。为什么要设置缓存的过期时间呢?一、为了节省内存例如,在缓存中存放了近3年的10亿条博文数据,但是经常被访问的可能只有10万条,其他的可能几个月才访问一次。那么,就没有必要让所有的博文数据长期存在于缓存中。设置一个过期时间比方说7天,超过7天未被访问的博文数据将会自动失效...原创 2019-08-18 16:34:24 · 5776 阅读 · 25 评论 -
SpringBoot中通过Redis的setnx和自定义注解@Idempotent实现API幂等处理
1.简述目的:一定时间内,同样的请求(业务参数相同)访问同一个接口,则只能成功一次,其余被拒绝。2.引入redis支持因为需要通过redis的setnx确保只有一个接口能够正常访问,所以需要引入redis。2.1.pom.xml<dependency> <groupId>org.springframework.boot</groupId> ...原创 2019-06-15 11:32:55 · 6764 阅读 · 2 评论 -
某网站Redis与MySql同步方案分析
后续文章: 通过Canal保证某网站的Redis与MySql的数据自动同步1.编写目的某网站项目引入了redis缓存技术,如何保证Redis与MySql的数据一致性是开发人员需要首要解决的问题。本文主要包括以下内容:Redis与MySql的数据一致性方案汇总与选取Canal解析binlog方案简介其他Redis开发原则2.方案汇总与选取下面展示了几种常见的R...原创 2018-03-28 16:22:05 · 9473 阅读 · 0 评论 -
通过Canal保证某网站的Redis与MySql的数据自动同步
前置文章: 某网站Redis与MySql同步方案分析使用Canal的主要目的:让自动同步代替部分手动同步,降低开发人员工作量,避免部分数据一致性问题。本文主要讲解如何配置Canal,以保证某网站的Redis与MySql的数据自动同步。1.Java开发原则下面列出一些本项目的开发原则:1.1.Redis的KEY命名规范项目名称-模块名称-对象名称-主键id例如...原创 2018-04-02 17:36:43 · 3319 阅读 · 2 评论 -
Redis: 分布式锁的官方算法RedLock以及Java版本实现库Redisson
1.简介在单机应用中,当多个线程访问共享资源时,我们通常通过synchronized关键字、Lock锁、线程安全对象等措施保证资源的安全使用。在分布式环境下,上述措施不再能满足需求,这事,我们需要一种应用于分布式换件的加锁机制,即:分布式锁。分布式锁的实现方式有多重,如:数据库、Redis、ZooKeeper等等。本文主要讲解Redis的分布式锁实现方式,主要依据官方文档:Distribu...原创 2019-08-17 17:08:45 · 5602 阅读 · 3 评论