Redis
文章平均质量分 59
晴天小哥哥
追求卓越, 成功就会在不经意间追上你
展开
-
Redis生成分布式环境下自增ID
相信大家在分布式系统一定会遇到如何生成唯一Id;uuid可以但是,作为数据库主键很浪费性能(索引相关),雪花算法可以,但是很依赖于环境.这里推荐大家使用redis生成;1.需求明确我们生成的Id组成为,时间戳+自增Id,补0例如:今天是2020.2.28 , 补6个0 ,那么生成的id范围是20200228000001-2020022899999...原创 2020-02-28 14:11:18 · 9030 阅读 · 2 评论 -
Docker(十三) docker安装单机redis
1.下载镜像docker pull redis:3.22.创建配置文件印刷目录mkdir /root/redisvi /root/redis/redis.conf写入配置(略)3.启动镜像docker run -p 6379:6379 -d --name redis \-v /root/redis/redis.conf:/etc/redis/redis.co...原创 2019-11-25 14:18:15 · 165 阅读 · 0 评论 -
Redis(三) Redis的持久化 RDB与AOF
Redis 持久化之RDB和AOFRedis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)。如果你想快速了解和使用RDB和AOF,可以直接跳到文章底部看总结。本章节通过配置文件,触发快照的方式,恢复数据的操作,命令操作演示,优缺点来学习 Redis 的重点知识持久化。RDB 详解RDB 是 Redis 默认的持久化方案。在指...原创 2018-11-30 16:06:04 · 236 阅读 · 0 评论 -
高并发场景下的限流策略
什么是限流和降级在开发高并发系统时,有很多手段来保护系统: 缓存、降级、限流。当访问量快速增长、服务可能会出现一些问题的时候(响应超时),或者会存在非核心服务影响到核心流程的性能时,仍然需要保证服务的可用性,即便是有损服务。所以意味着我们在设计服务的时候,需要一些手段或者关键数据进行自动降级,或者配置人工降级的开关。缓存的目的是提升系统访问速度和增大系统处理的容量,可以说是抗高并发...原创 2019-04-15 09:36:56 · 397 阅读 · 0 评论 -
监听Redis 缓存过期(Key 失效)事件
很多业务场景,例如订单过期自动删除,订单几天后自动好评,这些常用操作可以通过定时任务,数据库轮询做,但是订单量大的情况可能会对数据库产生大的压力。所以今天介绍的就是 redis 缓存过期通知。1.事件通过 Redis 的订阅与发布功能(pub/sub)来进行分发, 故需要开启 redis 的事件监听与发布2.修改redis.conf文件打开 notify-keyspace...原创 2019-04-18 10:13:01 · 14964 阅读 · 5 评论 -
Linux(四) linux安装redis集群
用1台虚拟机模拟6个节点,创建出3 master、3 salve 环境。1. 下载解压:cd /root/softwarewget http://download.redis.io/releases/redis-3.2.4.tar.gztar -zxvf redis-3.2.4.tar.gz 2. 进入redis3.2.4目录,安装rediscd redis-3.2.4m...原创 2019-06-07 12:11:00 · 272 阅读 · 0 评论 -
Jedis操作Redis--SortedSet(ZSet)类型
Redis ZSetRedis中的ZSet是一个有序的Set,内部使用HashMap和跳表(SkipList)来保证数据的存储和有序,HashMap里放的是成员到score的映射,而跳跃表里存放的是所有的成员,排序依据是HashMap里存的score,使用跳跃表的结构可以获得比较高的查找效率,并且在实现上比较简单。使用Jedis, 添加maven依赖 <!-...原创 2019-09-26 14:08:11 · 6520 阅读 · 1 评论 -
Redis实现延迟任务(过期取消订单)
1. 生产需求:用户下订单后,15分钟未支付自动取消; 用户成功下单支付后确认收货, 15天默认好评2. 实现思路利用redis的排序列表,ZSet进行需求实现, 下面是我的流程图和思路导线3. 思路说明我们把Zset中的score当成时间戳, 这样我们就可以获得以时间戳排序的任务列表, 这我们通过score区间进行拉取任务,进行消费.4.代码封装实现首先是封...原创 2019-09-27 09:27:38 · 5042 阅读 · 2 评论 -
Redis(二) Redis的常用配置
参数说明redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定 pidfile /var/run/redis.pid3. 指定Redis监听端口,默...原创 2018-11-30 15:42:57 · 264 阅读 · 0 评论 -
Springboot实现redis键失效监控操作
首先是springboot如何实现订阅发布参考文献传送门:http://blog.csdn.net/myNameIssls/article/details/75471012?locationNum=2&fps=1 1. pom.xml文件添加依赖<dependency> <groupId>org.springframework.boot&l...原创 2018-12-04 15:06:51 · 927 阅读 · 0 评论 -
注解形式实现,Redis分布式锁
Redis工具类参考我的博文:https://blog.csdn.net/weixin_38399962/article/details/82753763一个注解就可以实现分布式锁?这么神奇么?首先定义注解:/** * Description:分布式Redis锁 * User: zhouzhou * Date: 2018-09-25 * Time: 10:55 */@Re...原创 2018-09-26 09:17:21 · 1399 阅读 · 0 评论 -
Redis(一)数据类型
Redis 数据类型Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。String(字符串)string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的(见Redis中的String二进制安全)。...原创 2018-03-01 11:21:00 · 239 阅读 · 0 评论 -
NoSql(一)入门概述,数据库发展史
1互联网时代背景下大机遇,为什么用nosql1.1 单击mysql的美好年代 那时候网站访问量不大, 用单个数据库完全可以应付.动态交互不多 上述架构下,数据库的瓶颈? 1) 数据量的总大小,一个机器总会放不下 2) 数据的索引(B+tree)一个机器内存放不下时, 3) 访问量(读写混合)一个实例不能承受1.2 Memcached(缓存)+my...原创 2018-05-07 13:43:21 · 2075 阅读 · 0 评论 -
NoSql(二) 数据模型设计(kv,bson,列族, 图形)
1 3V +3高2当下的nosql的经典应用: 当下的应用是sql和nosql的一起使用:举个例子,阿里巴巴中文网站首页: 1商品基本信息: 名称. 价格. 出厂日期, 生产厂商等 -- 存在关系型数据库 2 商品描述,详情, 评价信息(多文字类) --文档类数据库 mongDB 3 商品图片 分布式的文件系统中: 淘宝自己的TFS, Googl...原创 2018-05-07 15:07:19 · 2675 阅读 · 0 评论 -
NoSql(三) NoSql数据库的四大分类
1 :KV键值对 典型介绍 新浪: BerkeleyDB + redis 美团: redis + tair 阿里, 百度: memcache + redis2: 文档型数据库(bson格式比较多): 典型介绍 MongoDB 是一个基于分布式文件存储的数据库, 由C++ 语言编写.是一个介于关系型数据库和非关系型数据库之间的产品,是非关系数据库中功能最丰富, 最像关系数据库的.3: ...原创 2018-05-07 15:28:36 · 873 阅读 · 0 评论 -
NoSql(四) 在分布式数据库中CAP原理 CAP + BASE
1: 传统的ACID是什么? A (Atomictiy[,ætə'mɪsɪti]) 原子性 C (Consistency[kən'sɪstənsi])一致性 I (Isolation) 独立性 D (Durability) 持久性2: CAP C: Consistency 强一致性 例如:数据稍微不对一点, 例如点赞数10万和10万1千的区别 A: Av...原创 2018-05-07 16:35:42 · 397 阅读 · 0 评论 -
分布式锁, 注解形式, 搞定SpringBoot定时任务@Scheduled 在集群下的优化
SpringBoot提供了 Schedule模块完美支持定时任务的执行在实际开发中由于项目部署在分布式或集群服务器上 会导致定时任务多次触发因此,使用redis分布锁机制可以有效避免多次执行定时任务 核心方法是org.springframework.data.redis.core包下的 setIfAbsent() 方法 返回值为布尔类型 方法类似redis的SETNX命令 ...原创 2018-08-29 14:07:06 · 11732 阅读 · 14 评论 -
RedisTemplate实现分布式锁
使用Redis的SETNX命令获取分布式锁的步骤:C1和C2线程同时检查时间戳获取锁,执行SETNX命令并都返回0,此时锁仍被C3持有,并且C3已经崩溃 C1 DEL锁 C1 使用SETNX命令获取锁,并且成功 C2 DEL锁 C2 使用SETNX命令获取锁,并且成功 ERROR : 由于竞态条件,C1和C2都获取到了锁幸运的是,以下面的步骤完全可以避免这种情况发生,看看C4线程如...原创 2018-09-18 10:58:16 · 31957 阅读 · 15 评论 -
Redis 更新(set) key值 会重置过期时间问题
今天在开发的过程中遇到了一个Redis的问题: 当你在redis中插入一个key值,并且设置了对应过期时间. 当过期时间还没到的时候重新 更新 key值会导致 过期时间被刷新, 针对这个问题: 我查看了下redis的官方文档, 他们是这么解释的:The timeout will only be cleared by commands that delete or overwrite the c...原创 2018-09-14 09:34:44 · 58829 阅读 · 2 评论 -
Redis中的String二进制安全机制(binary safe)
【二进制安全】:一个二进制安全功能(函数)是指在一个二进制文件上所执行的不更改文件内容的功能或者操作,其本质上将操作输入作为原始的、无任何特殊格式意义的数据流。【Redis☞String二进制安全】:String类型是二进制安全的,可以把图片和视频文件保存在String中。为了提高网站运行速度,可以使用String类型缓存一些静态文件,如图片文件、CSS文件等。struct sdshdr {int...原创 2018-03-01 10:03:49 · 6398 阅读 · 0 评论