随笔分类 - Redis
摘要:Redis做分布式锁真的靠谱吗 Redis的分布式锁可以通过Lua进行实现,通过setnx和expire命令连用的方式 || 也可以使用高版本的方法同时设置失效时间,但是假如在以下情况下,就会造成无锁的现象。 注:分布式锁能不用就不用,尤其是在高并发的情况下。 释放了不该释放的锁:👇 有时候直接执
阅读全文
摘要:在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。 所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问Mysql等数据库。 这样可以大大缓解数据库的压力。Redis缓存数据的加载可以分为懒加载和主动加载两种模式, 下面分别介绍在这两种模式下的数据一致
阅读全文
摘要:String: 一般做一些复杂的计数功能的缓存List: 做简单的消息队列的功能Hash: 单点登录Set: 做全局去重的功能SortedSet: 做排行榜应用,取TopN操作;延时任务;做范围查找 类型简介特性场景 String (字符串) Redis的字符串是动态字符串,是可以修改的字符串,它的
阅读全文
摘要:Redis 和 Memcached 有什么区别? Redis 的线程模型是什么? 为什么 Redis 单线程却能支撑高并发? 纷争开始啦.... 这个是问 redis 的时候,最基本的问题吧,redis 最基本的一个内部原理和特点,就是 redis 实际上是个单线程工作模型,你要是这个都不知道,那后
阅读全文
摘要:面试开始: 小伙子我看你的简历上写到了Redis,那么我们直接开门见山,直接怼常见的几个大问题,Redis雪崩了解么? 帅气迷人的面试官您好,我了解的,目前电商首页以及热点数据都会去做缓存 ,一般缓存都是定时任务去刷新,或者是查不到之后去更新的,定时任务刷新就有一个问题。 举个简单的例子: 如果所有
阅读全文
摘要:常用的分布式锁 一、基于数据库实现分布式锁 1. 悲观锁 利用select … where … for update 排他锁 注意: 其他附加功能与实现一基本一致,这里需要注意的是“where name=lock ”,name字段必须要走索引,否则会锁表。 有些情况下,比如表不大,mysql优化器会
阅读全文
摘要:为什么用分布式锁? 在讨论这个问题之前,我们先来看一个业务场景: 系统A是一个电商系统,目前是一台机器部署,系统中有一个用户下订单的接口,但是用户下订单之前一定要去检查一下库存,确保库存足够了才会给用户下单。 由于系统有一定的并发,所以会预先将商品的库存保存在redis中,用户下单的时候会更新red
阅读全文
摘要:关于Redis大键(Key),我们从 [空间复杂性] 和访问它的 [时间复杂度] 两个方面来定义大键。 前者主要表示Redis键的占用内存大小;后者表示Redis集合数据类型(set/hash/list/sorted set)键,所含有的元素个数。 以下两个示例: 1个大小200MB的String键
阅读全文
摘要:前言: 我们的redis使用的是内存空间来存储数据的,但是内存空间毕竟有限,随着我们存储数据的不断增长,当超过了我们的内存大小时,即在redis中设置的缓存大小(maxmeory 4GB),redis会怎么处理呢? Redis内存淘汰策略,是被很多小伙伴忽略的知识盲区,注意,是盲区。 注意,Redi
阅读全文
摘要:1、杀死节点(不是停止集群,否则不生效) 2、找到所有节点的nodes.conf文件,把内网地址改成你的ip 3、重启节点 ./redis-server redis.conf
阅读全文
摘要:##redis配置详解 # Redis configuration file example. # # Note that in order to read the configuration file, Redis must be # started with the file path as f
阅读全文
摘要:首先,Redis主从和clsuter是支持密码认证的。 其次,关于启用redis密码认证的涉及的几个问题: 1、是否只设置requirepass就可以?masterauth是否需要同步设置? 答案:redis启用密码认证一定要requirepass和masterauth同时设置。 如果主节点设置了r
阅读全文
摘要:RDB的原理: 在Redis中RDB持久化的触发分为两种:自己手动触发与Redis定时触发。 针对RDB方式的持久化,手动触发可以使用: 1):save:会阻塞当前Redis服务器,直到持久化完成,线上应该禁止使用。 2):bgsave:该触发方式会fork一个子进程,由子进程负责持久化过程,因此阻
阅读全文
摘要:save 900 1 # 时间策略 save 300 10 # 时间策略 save 60 10000 # 时间策略 dbfilename dump.rdb #文件名称 dir /home/work/app/redis/data/ #文件保存路径 stop-writes-on-bgsave-error
阅读全文
摘要:在使用redis时,都会配置相应的存储策略,以保证redis并不会由于意外挂掉,在短时间内重启时数据不会消失。 在当前的版本中,redis提供了bgsave和aof两种策略,本文主要描述了aof中的相关参数以及为什么这样是可以足够安全的。 appendonly: 开启aof特性,这个控制是否启用ao
阅读全文
摘要:save: 优点:节约系统资源 缺点:直接调用 rdbSave ,阻塞 Redis 主进程,直到保存完成为止。在主进程阻塞期间,服务器不能处理客户端的任何请求。 bgsave: 优点:fork 出一个子进程,子进程负责调用 rdbSave ,并在保存完成之后向主进程发送信号,通知保存已完成。 Red
阅读全文
摘要:Redis持久化备份数据的方式有两种:RDB(Redis DataBase) 、 AOF(Append Only File). RDB 什么是RDB: 在指定时间间隔内,将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存中,来达到恢复数据的。 如何持久化: R
阅读全文
摘要:Spring源码中是使用容器中的ObjectMapper对象进行序列化和反序列化。 当我们将自定义的ObjectMapper对象放入IOC容器中后,会自动覆盖SpringBoot自动装载的ObjectMapper对象。 若是我们在自定义的ObjectMapper中设置了objectMapper.en
阅读全文
摘要:1):Redis集群一直Waiting for the cluster to join... 再次进行连接时首先需要以下操作 1、使用redis desktop Manager连接所有节点 调出命令窗口输入一下 命令 flushall cluster reset 2、进入各个节点的redis的rdb
阅读全文