0602【Redis】
主要包含书籍《分布式中间件技术实战》、《Netty 、Redis、Zookeeper高并发实战》、视频、博客学习笔记
努力的阳光蓝孩
学习一时爽,一直学习一直爽
展开
-
Redis 的学习笔记 18 RedisTemplate 实现分布式锁
/** * ms */ public static final int LOCK_EXPIRE = 1000 * 60 ; private static final Long SUCCESS = 1L; public boolean tryLock(String lockKey, String value) { return tryLock(lockKey, value, LOCK_EXPIRE); } /*...原创 2021-09-20 23:23:51 · 417 阅读 · 0 评论 -
Redis 的学习笔记 17 原理剖析 AOF 和 RDB 对比
RDB 和AOF 对比1) RDB的优缺点 优点 RDB是二进制压缩文件,占用空间小,便于传输(传给slaver) 主进程fork子进程,可以最大化Redis性能,主进程不能太大,Redis的数据量不能太大,复制过程中主 进程阻塞 缺点 不保证数据完整性,会丢失最后一次快照以后更改的所有数据。2)AOF AOF(append only file)是Redis的另一种持久化方式。Redis默认情况下是不开启的。开启AOF持久 化后 Redis 将所有对数据库进行过写入的命令(及其参数)(RESP...原创 2021-09-13 09:24:14 · 157 阅读 · 0 评论 -
Redis 的学习笔记 16 原理剖析
1. Redis 为啥需要持久化1)Redis是内存数据库,宕机后数据会消失。2)Redis重启后快速恢复数据,要提供持久化机制 Redis持久化是为了快速的恢复数据而不是为了存储数据 。3)Redis有两种持久化方式:RDB和AOF注意:Redis持久化不保证数据的完整性。 当Redis用作DB时,DB数据要完整,所以一定要有一个完整的数据源(文件、mysql) 在系统启动时,从这个完整的数据源中将数据load到Redis中 数据量较小,不易改变,比如:字典库(xml、Table)原创 2021-09-13 09:21:11 · 167 阅读 · 0 评论 -
Redis学习笔记15 使用spring-data-redis完成CRUD的实践案例
一、介绍1、Java开发,都会使用了Spring框架,可以使用spring-data-redis开源库来简化Redis操作的代码逻辑,做到最大程度的业务聚焦。2、创建缓冲创建(Create)一个POJO实例的时候,对POJO实例进行分布式缓存,一般以“缓存前缀+ID”为缓存的Key键,POJO对象为缓存的Value值,直接缓存POJO的二进制字节。前提是:POJO必须可序列化,实现java.io.Serializable空接口。如果POJO不可序列化,也是可以缓存的,但是必须自己实现序列化的方式,例原创 2020-06-21 22:29:07 · 169 阅读 · 0 评论 -
Redis学习笔记14、 JedisPool连接池学习
一、介绍1、Jedis开源库提供了一个负责管理Jedis连接对象的池,名为JedisPool类,位于redis.clients.jedis包中。为了防止数据库连接的频繁创建、销毁带来的性能损耗。二、JedisPool的配置JedisPoolConfig配置类,位于redis.clients.jedis包中。这个连接池的配置类负责配置JedisPool的参数。JedisPoolConfig配置类涉及到很多与连接管理和使用有关的参数。1、maxTotal:资源池中最大的连接数 默认:82、maxIdl原创 2020-06-21 15:44:25 · 1264 阅读 · 0 评论 -
Redis学习笔记13、Jedis基础编程的实践案例Zset、Set
1、Java 操作setpackage com.example.actuatordemo.redis;import lombok.extern.slf4j.Slf4j;import redis.clients.jedis.Jedis;/** * @author haoxiansheng */@Slf4jpublic class RedisSetDemo { /** * redis 的set 集合是String 类型的无序集合 * 集合成员是唯一的,集合中不能出原创 2020-06-19 22:39:50 · 294 阅读 · 0 评论 -
Redis学习笔记12、Jedis基础编程的实践案例List、 Hash
1、Listpackage com.example.actuatordemo.redis;import lombok.extern.slf4j.Slf4j;import redis.clients.jedis.Jedis;/** * @author haoxiansheng */@Slf4jpublic class RedisListDemo { /** * Redis 列表是简单的字符串列表,按照插入顺序排序 */ public static voi原创 2020-06-19 09:13:44 · 124 阅读 · 0 评论 -
Redis学习笔记11、Jedis基础编程的实践案例
一、介绍1、Jedis是一个高性能的Java客户端,是Redis官方推荐的Java开发工具。2、要在Java开发中访问Redis缓存服务器Jedis的项目地址二、使用1、Maven的pom文件中增加依赖 ${redis.version} = 2.9.0<dependency> <groupId>redis.clents</groupId> <artifactId>jedis<artifactId> <vers原创 2020-06-16 09:17:24 · 157 阅读 · 0 评论 -
Redis学习笔记10 、Redis数据类型
一、Redis 五种类型1、String(字符串类型)2、Hash(哈希类型)3、List(列表类型)4、Set(集合类型)5、Zset(有序集合类型)二、操作1、String类型是Redis中最简单的数据结构。它既可以存储文字(例如"hello world"),又可以存储数字(例如整数10086和浮点数3.14),还可以存储二进制数据(例如10010100)。设值:SET Key Value [EX seconds]将Key键设置成指定的Value值。如果Key键已经存原创 2020-06-16 09:16:48 · 186 阅读 · 0 评论 -
Redis学习笔记九、Key的命名规范
一、什么要规范1、为了更好地进行命令空间的区分,Key会有很多的层次间隔,就像一棵目录树一样。2、为了以示区分,方便统计、更新、清除,可以将Key的命令组织成一种目录树一样的层次关系。方式一superkey.subkey.subsubkey.subsubsubkey...方式二superkey:subkey:subsubkey:subsubsubkey...3、Key的命名规范使用冒号分割优势方便分层展示。Redis的很多客户端可视化管理工具,如Redis Desktop M原创 2020-06-16 07:23:01 · 619 阅读 · 0 评论 -
Redis学习笔记八、Redis客户端命令
一、连接使用1、通过安装目录下的redis-cli命令客户端,可以连接到Redis本地服务。在远程Redis服务上执行命令,使用的也是redis-cli命令。Windows/Linux命令的格式:redis-cli -h host -p port -a password连接到主机为127.0.0.1,端口为6379,密码为"123456"的Redis服务上redis-cli -h 127.0.0.1 -p 3679 -a "123456"2、set 与 get 命令set命令:根据原创 2020-06-15 23:29:50 · 192 阅读 · 0 评论 -
Redis学习笔记七、安装与配置详解
一、安装1、Windows版本的下载地址2、Redis在Linux下的版本,需要先编译再安装,下载地址二、配置以linux为例1、是通过配置文件查看和修改Linux中安装完成后,redis.conf是一个默认的配置文件。查看和修改配置项的值# vim redis.conf2、是通过配置命令查看和修改启动Redis的命令客户端工具,连接上Redis服务,可以使用以下命令来查看和修改Redis配置项> CONFIG GET CONFIG_SETTING_NANE> C原创 2020-06-15 23:13:04 · 196 阅读 · 0 评论 -
Redis学习笔记四、redis的重要性
一、什么是Redis1、Redis是Remote Dictionary Server(远程字典服务器)的缩写,最初是作为数据库的工具来使用的。是目前使用广泛、高效的一款开源缓存。2、Redis使用C语言开发,将数据保存在内存中,可以看成是一款纯内存的数据库,所以它的数据存取速度非常快。3、一些经常用并且创建时间较长的内容,可以缓存到Redis中,而应用程序能以极快的速度存取这些内容。使用Redis将这个页面缓存起来,从而减轻了网站的负担,降低了网站的延迟。4、Redis通过键-值对(Key-V原创 2020-06-15 23:12:33 · 719 阅读 · 0 评论 -
Redis学习笔记一、Redis数据类型概念
一、Redis 数据类型String :字符串 一个key对应一个value 基本数据类型 一个键最大值能存储512MB> SET <String> <value>> GET <String>Hash :哈希 是一个键值(key=>value)对集合。Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。> HMSET <String> fiel原创 2020-05-25 23:47:03 · 224 阅读 · 0 评论 -
Redis学习笔记六、基本使用三 key失效问题
package com.haoxiansheng.middleware.springMessage;import com.haoxiansheng.middleware.MainApplicationTest;import lombok.extern.slf4j.Slf4j;import org.junit.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework..原创 2020-05-25 23:46:32 · 510 阅读 · 0 评论 -
Redis学习笔记三、基本使用二 集合使用
1、省略了类package com.haoxiansheng.middleware.springMessage;import com.fasterxml.jackson.databind.ObjectMapper;import com.haoxiansheng.middleware.MainApplicationTest;import com.haoxiansheng.middleware.rabbitmq.entity.Fruit;import com.haoxiansheng.middle.原创 2020-05-25 23:46:20 · 145 阅读 · 0 评论 -
Redis学习笔记二、使用方式一代码示例
1、主要介绍两张不同的使用方法:package com.haoxiansheng.middleware.springMessage;import com.fasterxml.jackson.databind.ObjectMapper;import com.haoxiansheng.middleware.MainApplicationTest;import com.haoxiansheng.middleware.rabbitmq.entity.User;import lombok.extern.原创 2020-05-25 23:46:05 · 372 阅读 · 0 评论 -
Redis学习笔记五、 解决 缓存穿透、缓存雪崩、缓存击穿
1、缓冲穿透: 恶意大量提供数据库中 中不存在的key 使每次查询直接 去后端数据库查询 直接返回null null 的数据不入缓冲 对数据库造成压力。 好像永远绕过了缓冲 直接的访问数据库 返回null 的同时 将null 数据塞入缓冲中 并设置一定的过期时间 2、缓冲雪崩: 指在某个时间点 缓冲中的key 集群失效 致使大量的查询数据库的请求落在了DB 数据库上 导致数据库负载过高 、压力爆增 设置不同的过期失效时间 错开缓冲失效时间 3、缓...原创 2020-05-23 22:19:30 · 168 阅读 · 0 评论