分类:Redis
-
Redis实践:布隆过滤器及其应用
什么是布隆过滤器 布隆过滤器(Bloom Filter)是由Howard Bloom在1970年提出的一种比较巧妙的概率型数据结构,它可以告诉你某种东西一定不存在或者可能存在。 布…
-
Redis实践:实现查找附近的人
Redis 中的GEO Redis是我们最为熟悉的K-V数据库,它常被拿来作为高性能的缓存数据库来使用,大部分项目都会用到它。从3.2版本开始它开始提供了GEO能力,用来实现诸如附…
-
Redis实践:微信步数排行榜
相信很多小伙伴都知道,可以使用Redis的有序集合ZSET来实现,本篇博客就基于此面试题,来讲解下ZSET的使用场景,以及微信步数排行榜的大致实现思路。 ZSET的使用场景 ZSE…
-
Redis实践:分布式锁
一、分布式锁 分布式锁,是一种思想,它的实现方式有很多。比如,我们将沙滩当做分布式锁的组件,那么它看起来应该是这样的: 加锁 在沙滩上踩一脚,留下自己的脚印,就对应了加锁操作。其他…
-
Redis实践:高并发限流
限流有许多种实现的方式,Redis具有很强大的功能,我用Redis实践了三种的实现方式,可以较为简单的实现其方式。 第一种:基于Redis的setnx的操作 我们在使用Redis的…
-
Redis 最佳实践指南:7个维度+43条使用规范
这篇文章我想和你聊一聊 Redis 的最佳实践。 你的项目或许已经使用 Redis 很长时间了,但在使用过程中,你可能还会或多或少地遇到以下问题: 我的 Redis 内存为什么增长…
-
为什么单线程的Redis那么快?
1. Redis单线程的本质 其实,Redis并不是单线程,我们之所以会一直称Redis是单线程,这是因为Redis在处理客户端的读写请求时,只有一个主线程,而在处理以下这些操作时…
-
Redis 缓存雪崩、缓存穿透、缓存击穿、缓存与数据库双写一致
缓存雪崩 缓存雪崩我们可以简单的理解为:由于原有缓存失效,新缓存未到期间(例如:我们设置缓存时采用了相同的过期时间,在同一时刻出现大面积的缓存过期),所有原本应该访问缓存的请求都去…
-
Redis 高可用:主从、哨兵、集群
主从复制 master-slave主从概念 同时运行多个redis服务端,其中一个作为主(master),其他的一个或多个作为从(slave),主从之间通过网络进行通讯,slave…
-
Redis 持久化:RDB快照和AOF机制
什么是Redis持久化 持久化就是把内存中的数据写到磁盘中去,防止服务宕机了内存数据丢失。 Redis的持久化机制 Redis提供两种持久化机制:RDB快照(默认)和AOF(机制)…
-
Redis 过期键删除策略和内存淘汰策略
Redis采用的是定期删除+惰性删除策略 为什么不用定时删除策略? 定时删除,用一个定时器来负责监视key,过期则自动删除。虽然内存及时释放,但是十分消耗CPU资源。在大并发请求下…
-
RedisObject 数据结构
Redis类型系统 在 Redis 的命令中, 用于对键 (key) 进行处理的命令占了很大一部分, 而对于键所保存的值的类型, 键能执行的命令又各不相同. 比如说, LPUSH …
-
Redis 事务
Redis事务 Redis事务功能是通过MULTI、EXEC、DISCARD和WATCH 四个原语实现的 Redis事务的三个阶段 事务开始 MULTI 命令入队 事务执行 EXE…
-
Redis 数据类型和使用场景
一、Redis 五种数据类型和使用场景 redis 有五种数据类型,六种底层数据结构 类型 简介 场景 String(字符串) 二进制安全 — Hash(哈希) 键值对…
-
Redis 开发规范(健值设计、命令使用)
一、键值设计 1. key 名设计 【建议】: 可读性和可管理性 以业务名 (或数据库名) 为前缀 (防止 key 冲突),用冒号分隔,比如业务名: 表名:id ugc:video…
-
Redis与RabbitMQ队列对比
简要介绍 RabbitMQ RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方…
-
Memcached与Redis差异性对比
Memcached与Redis作为近些年来用得最多的缓存服务器,若想用好,有必要将它们进行对比分析。 共同点 想了解一个软件,得先知道它是干什么用的。那么memcached和red…
-
如何访问 Redis 中的海量数据?(命令keys、scan区别和用法)
前言 有时候我们需要知道线上的redis的使用情况,尤其需要知道一些前缀的key值,那我们怎么去查看呢? 事故产生 因为我们的用户token缓存是采用了【user_token:us…
-
blpop命令的原理
redis中blpop可以实现链表的阻塞操作,客户端连接在list没有数据的情况下会进行阻塞。这让我产生了一个疑问,redis本身是一个单线程服务,如果阻塞客户端一直保持着跟服务器…
-
Redis 命令
Redis 键(key) DEL key:该命令用于在 key 存在时删除 key DUMP key:序列化给定 key ,并返回被序列化的值 EXISTS key:检查给定 ke…