其他数据库 Redis为什么快如何实现高可用及持久化 前言 作为Java程序员,在面试过程中,缓存相关的问题是躲不掉的,肯定会问,例如缓存一致性问题,缓存雪崩、击穿、穿透等。说到缓存,那肯定少不了Redis,我在面试的时候也是被问了很多关于Redis相关的知识,但是Redis的功能太强大了,并不是一时半会儿能...
其他数据库 浅谈Redis如何应对并发访问 前言 项目中经常会遇到这种场景,我们需要先将Redis数据读取到本地,然后进行修改,修改完成后在将数据写回Redis,这种读取-修改-写回操作,我们称之为RMW操作。当有多个客户端对同一份数据执行RMW操作的话,Redis如何保证RMW操作涉及的代码以原子...
其他数据库 redis基本类型和使用方法详解 redis存储数据的基本类型有:string(字符串类型)、hash(散列类型)、list(列表类型)、set(集合类型)、zset(有序集合类型)。 依次做一些练习。redis命令不区分大小写。 key相关操作 127.0.0.1:6379> se...
其他数据库 使用Redis实现令牌桶算法原理解析 在限流算法中有一种令牌桶算法,该算法可以应对短暂的突发流量,这对于现实环境中流量不怎么均匀的情况特别有用,不会频繁的触发限流,对调用方比较友好。 例如,当前限制10qps,大多数情况下不会超过此数量,但偶尔会达到30qps,然后很快就会恢复正常,假设这种突...
其他数据库 关于使用Redisson订阅数问题 一、前提 最近在使用分布式锁redisson时遇到一个线上问题:发现是subscriptionsPerConnection or subscriptionConnectionPoolSize 的大小不够,需要提高配置才能解决。 二、源码分析 下面对其源码进...
其他数据库 RedisAPI原子性操作及原理解析 在学习Redis的常用操作时,经常看到介绍说,Redis的set、get以及hset等等命令的执行都是原子性的,但是令自己百思不得其解的是,为什么这些操作是原子性的? 原子性 原子性是数据库的事务中的特性。在数据库事务的情景下,原子性指的是:一个事务(tr...
其他数据库 利用Redis实现防止接口重复提交功能 前言 在划水摸鱼之际,突然听到有的用户反映增加了多条一样的数据,这用户立马就不干了,让我们要马上修复,不然就要投诉我们。 这下鱼也摸不了了,只能去看看发生了什么事情。据用户反映,当时网络有点卡,所以多点了几次提交,最后发现出现了十几条一样的数据。 只能说现...
其他数据库 详解缓存穿透击穿雪崩解决方案 一:前言 设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。 二:缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请...
其他数据库 Redis不同数据类型使用场景代码实例 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 Redis列表命令 参考:http://www.redis.net.cn/tutorial/3501.ht...
其他数据库 Redis锁完美解决高并发秒杀问题 1 单机环境下的锁 2 分布式情况下使用Redis锁。 3 一台服务宕机,导致无法释放锁 4 给每一把锁加上过期时间 5延长锁的过期时间,解决锁失效 6 使用Redisson简化代码 场景:一家网上商城做商品限量秒杀。 1 单机环境下的锁 将商品的数量存到...
其他数据库 分布式锁三种实现方式及对比 分布式锁三种实现方式: 1. 基于数据库实现分布式锁; 2. 基于缓存(Redis等)实现分布式锁; 3. 基于Zookeeper实现分布式锁; 一, 基于数据库实现分布式锁 1. 悲观锁 利用select … where … for update 排他锁...
其他数据库 Redis进行相关优化详解 前言 Redis在项目中进行广泛使用,那么在日常的开发过程中,我们在使用Redis的过程中需要注意那些呢?本文将从三个维度来讲解如何进行Redis的优化。 内存维度 控制key的长度 key的一般都是采用字符串,而字符串的底层数据结构为SDS,SDS 结构...