Spring Data Redis

聊聊spring-boot-starter-data-redis的配置变更

青春壹個敷衍的年華 提交于 2020-11-03 15:52:00
本文主要研究一下spring-boot-starter-data-redis的配置变更 配置变更 以前是spring-boot的1.4.x版本的(spring-data-redis为1.7.x版本),最近切到2.0.4.RELEASEB版本(spring-data-redis为2.0.5.RELEASE版本),发现配置有变更。 旧版配置 spring.redis.database=0 spring.redis.host=192.168.99.100 spring.redis.port=6379 # spring.redis.password= # Login password of the redis server. spring.redis.pool.max-active=8 spring.redis.pool.max-idle=8 spring.redis.pool.max-wait=-1 spring.redis.pool.min-idle=0 # spring.redis.sentinel.master= # Name of Redis server. # spring.redis.sentinel.nodes= # Comma-separated list of host:port pairs. spring.redis.timeout=10 新版本配置 spring

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

十年热恋 提交于 2020-10-07 04:24:46
在上一篇中 springboot 2.X 集成redis 中提到了在spring-boot-starter-data-redis中使用JdkSerializationRedisSerializerl来实现序列化, 这里看下具体是如何实现的。 1.RedisSerializer接口 在spring-data-redis包下,有一个RedisSerializer接口,提供了序列化和反序列化的基本接口。 public interface RedisSerializer<T> { /** * Serialize the given object to binary data. * * @param t object to serialize. Can be {@literal null}. * @return the equivalent binary data. Can be {@literal null}. */ @Nullable byte[] serialize(@Nullable T t) throws SerializationException; /** * Deserialize an object from the given binary data. * * @param bytes object binary representation. Can be {

cas5.x实现将ticket维护到redis集群(不使用官方提供的哨兵模式)

北城以北 提交于 2020-10-01 16:47:48
转载至: http://zhfeat.cc/article/45 2020博客地址汇总 2019年博客汇总 前段时间基于CAS 5.2.6为公司二次开发了一套SSO单点登陆系统,整体来说比较顺利,不过最后卡在了将CAS服务端登陆所产生的ticket放到redis集群中这一环节。现在网上相关资料最多的是基于CAS 4.x版本的文章,对于CAS 5.x版本相关的资料还是比较少的,因此没有找到具体的解决同学,纠结了许久最后通过覆盖官方提供的jar包中的类解决了这个问题,希望能帮助到同样遇到这个问题的童鞋。该问题可能会有更优雅的解决方式,如果大家有更好的解决思路希望能分享给我,大家一同进步。 什么是CAS 这段是对CAS原理的一个剖析和总结,已经很清楚的同学可以略过。 SSO单点登录访问流程主要有以下步骤 访问服务:SSO客户端发送请求访问应用系统提供的服务资源。 定向认证:SSO客户端会重定向用户请求到SSO服务器。 用户认证:用户身份认证。 发放票据:SSO服务器会产生一个随机的Service Ticket。 验证票据:SSO服务器验证票据Service Ticket的合法性,验证通过后,允许客户端访问服务。 传输用户信息:SSO服务器验证票据通过后,传输用户认证结果信息给客户端。 CAS 原理和协议 从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client

spring-boot集成redis

冷暖自知 提交于 2020-08-14 05:53:00
集成的客户端 1)lettuce方式集成 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency> <dependency> <groupId>io.lettuce</groupId> <artifactId>lettuce-core</artifactId> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> </dependency> 2) jedis方式集成 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> </dependency> 集成模式 1)standalone方式集成 spring: redis: host: 127.0

使用redisTemple 设置setnx,同时设置失效时间

孤街浪徒 提交于 2020-08-12 14:44:25
public boolean setNx (String key , String value , Integer time) { //Object obj = null; Boolean obj = false; try { /* redis obj = redisTemplate.execute(new RedisCallback<Object>() { @Override public Object doInRedis(RedisConnection connection) throws DataAccessException { StringRedisSerializer serializer = new StringRedisSerializer(); Boolean success = connection.setNX(serializer.serialize(key), serializer.serialize(value)); redisTemplate.expire(key, time, TimeUnit.SECONDS); connection.close(); return success; } });*/ //spring-data-redis 包升级到 2.1.x 版本以上 obj = redisTemplate .opsForValue()

Spring Data 教程

有些话、适合烂在心里 提交于 2020-08-11 10:44:56
1. Redis简介 Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的API。Redis 是一个高性能的key-value数据库。 redis的出现,在部分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。 Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。 redis的key都是字符串 String 类型,它的value是多样化的,如下图: redis数据类型 ENCODING返回的编码 底层对应的数据结构 string int long类型的整数 string embstr embstr编码的简单动态字符串 string raw 简单动态字符串 list ziplist 压缩列表 list

LBS-查找附近的人-redis命令实现

自古美人都是妖i 提交于 2020-08-09 05:49:08
https://www.jianshu.com/p/a7977f2d8e6f https://www.jianshu.com/p/81bf3baa64e5 在redis的3.2版本开始支持geo的功能,这个功能可以将用户给定的地理位置信息储存起来, 并对这些信息进行操作。 本文环境 MACOS10.13.4+8G内存+2.6GHz+redis4.0.2 命令 redis的geo命令一共是6个,redis-geo在没有被集成到redis中只是一个附属模块的时候有更多的命令,在集成到redis中后被精简到了6个。我们先通过redis的命令熟悉这六条命令,然后再通过spring-data-redis集成到项目中,实现我们要做的查找附近的人。 注意:上一篇讲的mysql版本的Point(纬度,经度),纬度再前,经度在后。而在redis中是经度在前,维度在后。 中文显示乱码解决方案: ./redis-cli -a redis-pass --raw ,就是在命令后加 --raw , 加了 --raw 之后放回结果就没有格式化了,看起来比较不友好。项目中最好不要使用中文, 避免出现一些莫名其妙的问题。 GEOADD GEOADD key longitude latitude member [longitude latitude member ...] 添加一个或多个地理空间位置到sorted

Java工具篇之Redis的简单使用

孤街醉人 提交于 2020-08-06 21:17:32
Java工具篇之Redis的简单使用 一、下载安装 二、整合redis 三、RedisTemplate类 一、下载安装 Redis官网下载的是linux版的,windows版本的下载地址点 这里 。 下载解压之后目录结构长这样子 打开redis.windows.conf文件,设置密码。 设置完成之后,需要执行redis-server.exe redis.windows.conf,此时密码已经生效。 二、整合redis 保持redis的窗口打开状态,关闭窗口就停止redis了,如果有需要也可以注册成服务,此处不再赘述。 首先需要引入jar包文件 < dependency > < groupId > redis.clients </ groupId > < artifactId > jedis </ artifactId > < version > 2.9.0 </ version > </ dependency > 然后写一个测试类检验一下是否可以正常使用了,代码如下: import org . springframework . web . bind . annotation . GetMapping ; import org . springframework . web . bind . annotation . RestController ; import redis .

对比Memcached和Redis,谁才是适合你的缓存?

孤街醉人 提交于 2020-07-28 11:23:56
Memcached vs Redis 近期公司采购软件,评估时,某软件谈到使用了 Memcached 和 Redis 缓存。在本文中,将研究这两个流行的缓存的异同,方便理解和记忆。 1. Memcached 与 Redis 通常,我们会考虑在处理大量数据时使用** 缓存 提高性能。** Memcached 是一个分布式内存缓存系统,设计简单易用,非常适合用作缓存或会话存储。 Redis 是一个内存中的数据结构存储,它提供了一系列丰富的特性。它作为缓存、数据库、消息代理和队列非常有用。 2. 安装 2.1. 安装 Memcached 下载最新版的 Memcached 包并执行make进行安装 : $ wget http://memcached.org/latest $ tar -zxvf memcached-1.6.3.tar.gz $ cd memcached-1.6.3 $ ./configure && make && make test && sudo make install 2.2. 安装 Redis 相似的, 安装最新版本的 Redis server : $ wget http://download.redis.io/releases/redis-5.0.8.tar.gz $ tar xzf redis-5.0.8.tar.gz $ cd redis-5.0.8 $

redis-auto-idempotent-spring-boot-starter 一个高并发下接口幂等性处理的自定义starter

只愿长相守 提交于 2020-05-07 18:19:50
网上已经有很多基于redis + token实现的幂等性接口的实现案例,但是集成到项目中比较繁琐,并不是很易用, 所以在已有轮子的基础之上,封装了一个基于spring data redis的高并发下的接口幂等性处理的自定义starter, 此自定义的starter实现原理参考此文 springboot+redis+Interceptor+自定义annotation实现接口自动幂等 我的具体实现可以浏览我的码云 bwstudio-common 幂等处理的流程图与原来的轮子相同,就直接引入了 redis-auto-idempotent-spring-boot-starter的使用及其简单 只需要引入依赖,在配置文件中设置开启两个参数即可,如果启用成功,会在启动中看到下列输出: redis-auto-idempotent-spring-boot-starter使用说明 在你的项目中引入依赖 <dependency> <groupId>com.bwstudio.common</groupId> <artifactId>redis-auto-idempotent-spring-boot-starter</artifactId> <version>0.0.1</version> </dependency> 在spring boot项目的配置文件中加入一下两个配置, 比如application