-
前因后果
之前我们的服务,在上线的时候发现有一些大Key的使用不是很规范,特别是没有设置过期时间,因此导致redis中内存的数据越来越多,目前Redis节点的内存已经快撑不住了。所以根据缓
-
一、安装redis
源码安装:
1.下载源码包:
wget http://download.redis.io/releases/redis-6.0.7.tar.gz
2.解压到指定目录下:
tar xf redis-6.0.7.tar.gz -C /usr/local/
二、编译安装
下载编译安装Redis的依赖,因为Redis是C
-
秒杀业务特点:限时限量,业务系统要处理瞬时高并发请求,Redis是必需品。
秒杀可分成秒杀前、秒杀中和秒杀后三阶段,每个阶段的请求处理需求不同,Redis具体在秒杀场景的哪个环节起到作
-
1 Redis数据结构介绍
Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样:
value的数据类型共有8种,前面5中为基本数据类型,后面3种是针对不同的情况指定的特殊数据类型
-
redis保存AtomicInteger对象踩坑
redisTemplate 保存AtomicInteger对象异常:
java.lang.ClassCastException: java.util.concurrent.atomic.AtomicInteger cannot be cast to java.lang.String at org.springframework.data.redis.serializer
-
正文
Redis 没有直接使用 C 语言传统的字符串表示(而是以空字符结尾的字符数组,以下简称 C 字符串),自己构建了一种名为简单动态字符串(simple dynamic string,SDS) 的抽象类型,并将 SDS 用
-
Redis是一个开源的基于内存也可持久化的Key-Value数据库,采用ANSI C语言编写。它拥有丰富的数据结构,拥有事务功能,保证命令的原子性。由于是内存数据库,读写非常高速,可达10w/s的评率,
-
缓存穿透、击穿、雪崩
首先我们从缓存会出现的几种问题,来进行分析,在高并发的场景下如果出现这种情况,我们应该如何解决。
正常情况下,我们的web应用会先去请求缓存服务,如果缓存
-
1 前言
1.1 什么是缓存
缓存就是数据交换的缓冲区(称作Cache [ kæʃ ] ),是存贮数据的临时地方,一般读写性能较高。
缓存有很多中实现场景:对于web开发,常见的有如下几种:
而我们的R
-
Redis setNX分布式锁超时时间失效 -1
使用SETNX加锁
加锁的思路:
如果 key 不存在,将 key 设置为 value,如果 key 已存在,则 SETNX 不做任何动作。
使用 RedisTemplate 操作Redis
@Autowired
private Redis
-
1. Bitmap 是什么
Bitmap(也称为位数组或者位向量等)是一种实现对位的操作的'数据结构',在数据结构加引号主要因为:
Bitmap 本身不是一种数据结构,底层实际上是字符串,可以借助字符串
-
起因
今天在写业务代码的时候,用到了StringRedisTemplate中redisTemplate.opsForValue().setIfAbsent()中并不是我期望的true或者false而是返回了null,起初我还以为是因为Returns:null when used in pipeline / transaction.这
-
介绍 Redis 的复制
Redis 的复制功能分为同步(sync)和命令传播(command propagate)这两个操作
同步操作用于,将从服务器的数据库状态更新至主服务器当前所处的数据库状态;命令传播操作用于,
-
写在前面
我们在使用Redis分片集群时,集群最好的状态就是每个实例可以处理相同或相近比例的请求,但如果不是这样,则会出现某些实例压力特别大,而某些实例特别空闲的情况发生,本文就
-
Redis分布式锁设置超时时间
Redis分布式锁主要依靠Redis服务来完成,我们的应用程序其实是Redis节点的客户端,一旦客户端没有释放锁,服务端就会一直持有这个锁,其他进程中的线程就无法获取