
Redis
文章平均质量分 81
闻道☞
学习是最好的修行
展开
-
Redisson分布式锁源码解读
加锁 & 解锁流程串起来上面结合 Lua 脚本和源码,分别分析了加锁流程和解锁流程。下面升级下挑战难度,模拟下多个线程争抢锁会是怎样的流程。示意图如下,比较关键的三处已用红色字体标注。概括下整个流程1、线程 A 和线程 B 两个线程同时争抢锁。线程 A 很幸运,最先抢到了锁。线程 B 在获取锁失败后,并未放弃希望,而是主动订阅了解锁消息,然后再尝试获取锁,顺便看看没有抢到的这把锁还有多久就过期,线程 B 就按需阻塞等锁释放。原创 2023-07-20 18:41:00 · 673 阅读 · 0 评论 -
Redisson限流器RRateLimiter使用及源码分析
redission分布式限流采用令牌桶思想和固定时间窗口,trySetRate方法设置桶的大小,利用redis key过期机制达到时间窗口目的,控制固定时间窗口内允许通过的请求量。原创 2023-07-20 15:45:31 · 2759 阅读 · 0 评论 -
阿里云Redis开发规范
一、键值设计key名设计(1)【建议】: 可读性和可管理性以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:idugc:video:1(2)【建议】:简洁性保证语义的前提下,控制key的长度,当key较多时,内存占用也不容忽视,例如:user:{uid}:friends:messages:{mid}简化为u:{uid}:fr:m:{mid}。(3)【强制】:不要包含特殊字符反例:包含空格、换行、单双引号以及其他转义字符详细解析2. value转载 2022-02-10 17:36:30 · 137 阅读 · 0 评论 -
Redis—跳跃表
https://mp.weixin.qq.com/s/NOsXdrMrWwq4NTm180a6vw转载 2021-12-20 17:22:04 · 123 阅读 · 0 评论 -
布隆过滤器详细总结
1.什么是布隆过滤器?首先,我们需要了解布隆过滤器的概念。布隆过滤器(Bloom Filter)是一个叫做 Bloom 的老哥于1970年提出的。我们可以把它看作由二进制向量(或者说位数组)和一系列随机映射函数(哈希函数)两部分组成的数据结构。相比于我们平时常用的的 List、Map 、Set 等数据结构,它占用空间更少并且效率更高,但是缺点是其返回的结果是概率性的,而不是非常准确的。理论情况下添加到集合中的元素越多,误报的可能性就越大。并且,存放在布隆过滤器的数据不容易删除。位数组中的每个元素都只转载 2021-12-20 17:01:43 · 307 阅读 · 0 评论 -
Geohash算法原理及实现
最近需要实现一个功能,查找车辆附近的加油站,如果车和加油站距离在200米以内,则查找成功。加油站数量肯定不小,能否缩小查找范围,否则以遍历形式,效率肯定高不了。Geohash算法就是将经纬度编码,将二维变一维,给地址位置分区的一种算法。原创 2021-12-20 16:42:24 · 172 阅读 · 0 评论 -
数据库与缓存数据一致性解决方案
数据库与缓存数据一致性解决方案数据库与缓存读写模式策略的选择为什么使用缓存功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入数据库与缓存读写模式策略的选择为什么使用缓存主要是从两个角度去考虑:性能和并发使用缓存是为了提高性能,原创 2020-09-10 22:22:54 · 2504 阅读 · 2 评论 -
Redisson 实现分布式锁原理
Redisson实现分布式锁有关Redisson作为实现分布式锁,总的分3大模块来讲。1、Redisson实现分布式锁原理2、Redisson实现分布式锁的源码解析3、Redisson实现分布式锁的项目代码(可以用于实际项目中)本文只介绍Redisson如何实现分布式锁的原理。一、高效分布式锁当我们在设计分布式锁的时候,我们应该考虑分布式锁至少要满足的一些条件,同时考虑如何高效的设计分布式锁,这里我认为以下几点是必须要考虑的。1、互斥在分布式高并发的条件下,我们最需要转载 2020-08-19 20:18:28 · 3110 阅读 · 0 评论 -
Redis集群方式
Redis集群方式共有三种:主从模式,哨兵模式,cluster(集群)模式1.主从模式主从模式:是三种集群方式里最简单的。它主要是基于Redis的主从复制特性架构的。通常我们会设置一个主节点,N个从节点;默认情况下,主节点负责处理使用者的IO操作,而从节点则会对主节点的数据进行备份,并且也会对外提供读操作的处理。主要的特点如下: 主从模式下,当某一节点损坏时,因为其会将数据备份到...原创 2020-05-05 20:22:04 · 2129 阅读 · 0 评论 -
Redis数据过期策略详解
本文对Redis的过期机制简单的讲解一下 讲解之前我们先抛出一个问题,我们知道很多时候服务器经常会用到redis作为缓存,有很多数据都是临时缓存一下,可能用过之后很久都不会再用到了(比如暂存session,又或者只存放日行情股票数据)那么就会出现一下几个问题了Redis会自己回收清理不用的数据吗? 如果能,那如何配置? 如果不能,如何防止数据累加后大量占用存储空间的问题? 之前一直...转载 2020-05-05 16:54:47 · 882 阅读 · 0 评论 -
基于redis实现分布式锁
1.分布式锁的应用场景当多个机器(多个进程)会对同一条数据进行修改时,并且要求这个修改是原子性的。这里有两个限定:1. 多个进程之间的竞争,意味着JDK自带的锁失效;2. 原子性修改,意味着数据是有状态的,修改前后有依赖。2.分布式锁的实现条件1. 高性能(加、解锁时高性能)2.可以使用阻塞锁与非阻塞锁。3.不能出现死锁。4.可用性(不能出现节点 down 掉后加锁失败)。...原创 2018-11-19 17:11:53 · 409 阅读 · 0 评论 -
SpringBoot(2.1.1)集成redis及缓存操作失败的异常处理
1.添加spring-boot-starter-data-redis依赖 <!-- Spring Boot Redis依赖 --> <!-- 注意:1.5版本的依赖和2.0的依赖不一样,注意看哦 1.5我记得名字里面应该没有“data”, 2.0必须是“spring-boot-starter-data-redis” 这个才行...原创 2018-01-10 16:18:53 · 7838 阅读 · 0 评论 -
Spring 集成 redis(十一)
前言: 目前公司项目在上一个技术架构的处理,已经搭建好了Redis,但redis只用在了做session的管理,然而 后台的对象缓存没有用上 1. redis 和 ehcache的区别: 简单了解了下,个人觉得 从部署上而言,redis更适合分布式部署,ehcache是在每台应用服务器上开辟一块内存做缓存,集群时还得考虑缓存的情况,转载 2016-12-31 18:37:01 · 484 阅读 · 0 评论 -
Jedis常用操作(十)
Jedis 是 Redis 官方首选的 Java 客户端开发包。1.测试连通性public class Demo01 { public static void main(String[] args) { //连接本地的 Redis 服务 Jedis jedis = new Jedis("127.0.0.1",6379); //查看服务是否运行,打出p原创 2016-12-31 15:10:48 · 1208 阅读 · 0 评论 -
Spring+ehcache+redis两级缓存--缓存实战篇(1)
本文主要介绍为什么要构建ehcache+Redis两级缓存?以及在实战中如何实现?思考如何配置缓存策略更合适?这样的方案可能遗留什么问题?JUST DO IT!Go!问题描述场景:我们的应用系统是分布式集群的,可横向扩展的。应用中某个接口操作满足以下一个或多个条件:1. 接口运行复杂代价大,2. 接口返回数据量大,3. 接口的数据基本不会更改,4. 接口数据一致性要求不高...转载 2017-01-05 09:49:22 · 1805 阅读 · 0 评论 -
spring + ehcache + redis两级缓存实战篇(2)
原文 http://blog.youkuaiyun.com/liaoyulin0609/article/details/51919789在上篇《spring + ehcache + redis两级缓存实战篇(1)》中,最后遗留了两个问题给大家思考:第一个是访问10次本地EhCache 强制访问一次Redis使得激活数据或更新数据,这样会不会更好一些呢?第二个是使用spring@Cac...转载 2017-01-05 09:53:01 · 1011 阅读 · 0 评论 -
NoSql入门和概述(一)
1. 互联网时代背景下大机遇,为什么用nosql1.1单机MySQL的美好年代在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静态网页,动态交互类型的网站不多。上述架构下,我们来看看数据存储的瓶颈是什么?1.数据量的总大小 一个机器放不下时2.数据的索引(B+ Tree)一个机器的内存放不下时3.访问量(读写混合)原创 2016-12-24 20:25:10 · 656 阅读 · 0 评论 -
NOSQL数据库基本知识(二)
1.NoSQL数据模型简介以一个电商客户、订单、订购、地址模型来对比下关系型数据库和非关系型数据库传统的关系型数据库设计,ER图(1:1/1:N/N:N,主外键等常见)nosql设计可以用BSON,BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象js原创 2016-12-24 22:07:06 · 1639 阅读 · 0 评论 -
Redis入门介绍(三)
1.Redis是什么Redis:REmote DIctionary Server(远程字典服务器),是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器Redis 与其他 key - value 缓存产品有以下三个特点:原创 2016-12-25 11:41:30 · 424 阅读 · 0 评论 -
解析配置文件 redis.conf(五)
1.常见配置redis.conf介绍参数说明redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定 pi原创 2016-12-25 18:10:16 · 464 阅读 · 0 评论 -
redis持久化(六)
Redis 持久化:提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF.RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末原创 2016-12-25 20:13:20 · 739 阅读 · 0 评论 -
Redis数据类型(四)
1.Redis的五大数据类型1.1 String(字符串)string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M常...原创 2016-12-25 16:09:21 · 583 阅读 · 0 评论 -
Redis的事务(七)
1.Redis的事务是什么可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞。Redis的事务能干什么-------一个队列中,一次性、顺序性、排他性的执行一系列命令。不具有原子性。2.常用命令http://redisdoc.com/transaction/index.htmlhttp原创 2016-12-26 14:39:15 · 330 阅读 · 0 评论 -
Redis的发布订阅(八)
redis常见数据类型操作命令--http://redisdoc.com/1.Redis的发布订阅进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。2.命令先订阅后发布后才能收到消息,1 可以一次性订阅多个,SUBSCRIBE c1 c2 c32 消息发布,PUBLISH c2 hello-redis===原创 2016-12-31 11:08:10 · 340 阅读 · 0 评论 -
Redis的主从复制(Master/Slave)(九)
Redis虽然有着卓越的性能,但我们仍然可以通过master/slave这种简单架构,进行读写分离,进一步挖掘redis的性能,提高系统的可用性。redis怎么进行主从复制呢?redis复制主要是通过master server持久化的rdb文件实现的。master server 先dump出内存快照文件,然后将rdb文件传给slave server,slave server 根据r原创 2016-12-31 12:44:08 · 3213 阅读 · 0 评论 -
redis 集群介绍就,安装详细步骤,和spring 整合
redis相关网站:官网: http://redis.io 中文网:http://www.redis.cn/ 文档:http://redisdoc.com/1.Redis集群介绍什么是Redis集群?Redis集群是一个实现分布式并且允许单点故障的Redis高级版本。Redis集群没有最重要或者说中心节点,这个版本最主要的一个目标是转载 2017-01-02 11:54:24 · 877 阅读 · 0 评论