Redis系列(八):发布与订阅

Redis的发布与订阅,有点类似于消息队列,发送者往频道发送消息,频道的订阅者接收消息。 1. 发布与订阅示例 首先,在本机开启第1个Redis客户端,执行如下命令订阅blog.redis频道: SUBSCRIBE "blog.redis" 然后,在本机开启第2个Redis客户端,执行相同的命令订阅 ... »

php抽奖功能

在项目开发中经常会遇到花钱抽奖类型的需求。但是老板总是担心用户用小钱抽到大奖。这样会导致项目亏损。下边这段代码可以有效制止抽奖项目亏钱。 个人奖池: 语言:thinkphp redis mysql 表:desire抽奖商品表 desire_log用户抽奖奖品表 user_desire_log用户抽奖 ... »

多图解释Redis的整数集合intset升级过程

redis源码分析系列文章 [Redis源码系列]在Liunx安装和常见API 为什么要从Redis源码分析 String底层实现——动态字符串SDS 双向链表都不懂,还说懂Redis? 面试官:说说Redis的Hash底层 我:......(来自阅文的面试题) Redis的跳跃表确定不了解下 前言 ... »

Mysql和Redis数据同步策略

为什么对缓存只删除不更新 不更新缓存是防止并发更新导致的数据不一致。 所以为了降低数据不一致的概率,不应该更新缓存,而是直接将其删除, 然后等待下次发生cache miss时再把数据库中的数据同步到缓存。 先更新数据库还是先删除缓存? 有两个选择: 1. 先删除缓存,再更新数据库 2. 先更新数据库 ... »

跳跃表确定不了解下

redis源码分析系列文章 [Redis源码系列]在Liunx安装和常见API 为什么要从Redis源码分析 String底层实现——动态字符串SDS Redis的双向链表一文全知道 面试官:说说Redis的Hash底层 我:......(来自阅文的面试题) 前言 hello,大家好,周五见了。前面 ... »

谈谈spring-boot-starter-data-redis序列化

在上一篇中springboot 2.X 集成redis中提到了在spring-boot-starter-data-redis中使用JdkSerializationRedisSerializerl来实现序列化, 这里看下具体是如何实现的。 1.RedisSerializer接口 在spring-dat ... »

springboot 2.X 集成redis

在实际开发中,经常会引入redis中间件做缓存,这里介绍springboot2.X后如何配置redis 1 Maven中引入redis springboot官方通过spring-boot-autoconfigure和redis的starter包来简化我们的配置工作。 <dependency> <gr ... »

SpringBoot + Mybatis + Redis 整合入门项目

这篇文章我决定一改以往的风格,以幽默风趣的故事博文来介绍如何整合 SpringBoot、Mybatis、Redis。 很久很久以前,森林里有一只可爱的小青蛙,他迈着沉重的步伐走向了找工作的道路,结果发现许多的招聘要求都要会 Redis。 小青蛙就想啥是 Redis 呢,为什么要用 Redis 呢?难 ... »

腾讯云Redis混合存储版重磅推出,万字长文助你破解缓存难题!

导语 | 缓存+存储的系统架构是目前常见的系统架构,缓存层负责加速访问,存储层负责存储数据。这样的架构需要业务层或者是中间件去实现缓存和存储的双写、冷热数据的交换,同时还面临着缓存失效、缓存刷脏、数据不一致等问题。本文是对腾讯云数据库高级产品经理邹鹏老师在「云加社区沙龙online」的分享整理,希望 ... »

Redis 数据结构 之 SDS

SDS(simple dynamic string),简单动态字符串。s同时它被称为 Hacking String。hack 的地方就在 sds 保存了字符串的长度以及剩余空间。sds 的实现在 sds.c 中。 C语言字符串使用长度为n+1的字符数组来表示长度为n的字符串,并且字符数组的最后一个元 ... »

Redis在CentOS for LInux上安装详细教程

1.首先上传安装包,这里我以 redis-5.0.8.tar.gz 为例子。 Linux下载redis地址:wget http://download.redis.io/releases/redis-5.0.8.tar.gz 先在opt目录下建立一个软件包上传文件夹 mkdir /opt/softwa ... »

Redis的持久化设计

Redis 持久化设计 持久化的功能:Redis是内存数据库,数据都是存储在内存中的,为了避免进程退出导致数据的永久丢失,要定期将Redis中的数据以某种形式从内存保存到硬盘,当下次Reids重启时,利用持久化文件实现数据恢复。 RDB:将当前数据保存到硬盘 AOF:将每次执行的写命令保存到硬盘(类 ... »

Redis的内存和实现机制

1. Reids内存的划分 数据 内存统计在used_memory中 进程本身运行需要内存 Redis主进程本身运行需要的内存占用,代码、常量池等 缓冲内存,客户端缓冲区、复制积压缓冲区、AOF缓冲区。有jemalloc分配内存,会统计在used_memory中 内存碎片 Redis在分配、回收物理 ... »

别让HR再质问我:我费劲招的人,你用缓存问废了,不能简单点?

概念 缓存穿透 在高并发下,查询一个不存在的值时,缓存不会被命中,导致大量请求直接落到数据库上,如活动系统里面查询一个不存在的活动。 缓存击穿 在高并发下,对一个特定的值进行查询,但是这个时候缓存正好过期了,缓存没有命中,导致大量请求直接落到数据库上,如活动系统里面查询活动信息,但是在活动进行过程中 ... »

双向链表都不懂,还说懂Redis?

目录 redis源码分析系列文章 前言 API使用 lpush左侧插入数据 rpush右侧插入数据 删除某个数据 修改某个数据 具体逻辑图 双向链表的定义 节点ListNode 整体架构 双向链表的实现 创建表头 清空表 添加元素到表头 添加元素到表尾 插入 删除 总结 redis源码分析系列文章 ... »

如何在Linux上安装Redis(内附详细教程)

前言 hello,好久不见,又断更了一段时间。同事大部分离职了,但是活还是一样,所以只能硬着头皮顶上。现在总算歇会了,决定开启Redis源码系列,希望不要啪啪啪打脸。 ​ 什么是redis? Redis是一种基于键值对(key-value)的NoSQL数据库,主要的数据类型包括String(字符串) ... »