Spring Data Redis

Redis之SpringDataRedis对象写入到Redis中

我是研究僧i 提交于 2019-12-19 11:33:44
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 业务场景中经常遇到使用Redis作为缓存,而将对象写入Redis更是常见的。下面来看下,对象写入Redis的俩种方式(我之前就知道除了JDK,还有其它的诸如Jackson提供序列化功能,但是JDK之外的其它第三方在方序列化的时候提供目标对象class,不过今天我发现Spring-data-redis自带的这个GenericJackson2JsonRedisSerializer解决了我的烦恼)。 1.公用配置 List-1 连接池和ConnectionFactory配置 <bean id="pool" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxTotal" value="30"/> <property name="maxIdle" value="10"/> <property name="minEvictableIdleTimeMillis" value="100000"/> <property name="numTestsPerEvictionRun" value="1024"/> </bean> <bean id="jedisConnectionFactory" class="org.springframework.data

集成spring-data-jpa和spring-data-redis

五迷三道 提交于 2019-12-18 22:34:01
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 这两天在想在项目中使用spring-data-redis没想到和已存在的spring-data-jpa冲突了,启动报错,原因是spring-data-jpa和spring-data-redis都使用了共同的CrudRepository接口导致Spring无法判断哪些Repository由jpa管理哪些由redis管理,解决办法在spring-data-jpa的文档中https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.multiple-modules import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.repository.configuration.EnableRedisRepositories; /* * 使用多个spring data时需要使用严格模式来指定包路径,通配符的方式无法区分 */ @Configuration @EnableJpaRepositories(basePackages = "test.repositories.jpa")

redis 哨兵模式配置与spring集成

一世执手 提交于 2019-12-16 21:51:26
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 最低安装 redis 2.8以上版本 以下流程 为redis3.2.11版本上建立 1、编译redis源码 make PREFIX=/usr/local/redis install 如果提示错误 /bin/sh: cc: command not found 则执行 sudo yum -y install gcc gcc-c++ libstdc++-devel make MALLOC=libc mkdir conf mkdir data mkdir log 2、将redis 源码下的 redis.conf和sentinel.conf 复制到 redis/conf/ 下,修改 redis.conf bind 172.16.5.58 protected-mode no tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize yes supervised no pidfile "/var/run/redis_16382.pid" loglevel notice logfile "/usr/local/redis-16382/log/redis-16382.log" databases 16 save 900 1 save 300 10 save 60 10000

kotlin使用spring data redis(二)

人盡茶涼 提交于 2019-12-13 21:48:19
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 自定义序列化器 1.标准json序列化器,时间类型禁用时间戳 import com.fasterxml.jackson.core.JsonProcessingException import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.databind.SerializationFeature import com.fasterxml.jackson.datatype.jdk8.Jdk8Module import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper import com.fasterxml.jackson.module.kotlin.readValue import org.springframework.data.redis.serializer.RedisSerializer import org.springframework.data.redis.serializer

SpringBoot集成Redis引起的序列化问题

可紊 提交于 2019-12-13 21:47:47
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 想必大家对SpringBoot可能已经很熟悉了,包括集成Redis这种常用的技术,之前一直用一贯的写法去集成Redis,写配置类没发现过任何问题,但是上周在给Redis配置类加了一个Bean之后就出现了很难发现的问题。 配置类代码 `@Configuration public class RedisConfig extends CachingConfigurerSupport { [@Bean](https://my.oschina.net/bean) public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); // 使用Jackson2JsonRedisSerialize 替换默认序列化 Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new

(十四)JAVA springboot微服务b2b2c电子商务系统-在springboot中用redis实现消息队列

余生长醉 提交于 2019-12-07 00:01:19
准备阶段 java 1.8 maven 3.0 idea 环境依赖 创建一个新的springboot工程,在其pom文件,加入spring-boot-starter-data-redis依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 创建一个消息接收者 REcevier类,它是一个普通的类,需要注入到springboot中。 public class Receiver { private static final Logger LOGGER = LoggerFactory.getLogger(Receiver.class); private CountDownLatch latch; @Autowired public Receiver(CountDownLatch latch) { this.latch = latch; } public void receiveMessage(String message) { LOGGER.info("Received <" + message + ">"); latch.countDown(); } } 注入消息接收者 @Bean

Redis及Spring-Data-Redis入门学习

巧了我就是萌 提交于 2019-12-04 01:46:37
继上一篇 Solr和Spring Data Solr学习 ,我们思考一个问题,使用Solr的目的是什么?肯定是为了加快服务器的相应速度。因为即使不适用Solr,通过请求数据库我们一样能完成搜索功能,但是这样会给服务器造成很大的压力。 而Solr仅仅是在搜索功能中用到了,但是大量请求的数据不仅仅出现在搜索中,比如用户的登录信息,虽然数据量很小,但是整个项目每刷新一次页面都要请求一次用户登录的Token信息,也会拖慢服务器的响应速度。我们通常有两中解决方式:1.数据缓存;2.网页静态化。 其实我们在 Shiro实现用户-角色-权限管理系统 中已经用到了缓存技术,今天我们了解一下Redis缓存技术。 项目开源地址: Github 安装Redis Redis是一款开源的Key-Value数据库。首先我们要去 官网 下载Redis,由于笔者使用的是MacOS系统,和Windows系统有所不同。 安装过程不再叙述,这里提供两个教程: Windows: Redis安装教程 MacOS&Linux: Redis安装教程 <br/> 启动Redis redis-server redis-server & 建议使用第二个命令,用第二个命令启动了redis server后能继续输入命令,使用第一个命令则不行。 如果终端中显示如下logo表示redis启动成功: <br/> 操纵Redis

redis客户端jedis&spring-data-redis源码赏析

倾然丶 夕夏残阳落幕 提交于 2019-12-03 09:51:03
背景 本文主要对当下开源流行的redis客户端jedis和spring-data-redis的部分核心源码进行剖析,记录一下怎么去实现一个redis的java客户端以及在使用redis集群时客户端的操作需要注意的要点。 版本 jedis:v2.9.0、 spring-data-redis:v2.0.8.RELEASE 源代码的分析 先看最核心的入口类:org.springframework.data.redis.core.RedisTemplate 它继承于org.springframework.data.redis.core.RedisAccessor,主要是设置org.springframework.data.redis.connection.RedisConnectionFactory,并在spring bean初始化完毕对connectionFactory进行为空校验; 实现的核心接口org.springframework.data.redis.core.RedisOperations主要提供了一些基础操作,但这个接口并不经常使用,因为redis的数据结构比较复杂,更多具体的操作都封装在了ValueOperations、ListOperations等,以及BoundValueOperations、BoundListOperations等这两类操作中

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

喜你入骨 提交于 2019-12-03 02:00:24
序 本文主要研究一下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-data-redis的连接池的校验

我是研究僧i 提交于 2019-12-03 01:59:26
序 本文主要研究一下spring-data-redis的连接池的校验 lettuce LettucePoolingConnectionProvider spring-data-redis/2.0.10.RELEASE/spring-data-redis-2.0.10.RELEASE-sources.jar!/org/springframework/data/redis/connection/lettuce/LettucePoolingConnectionProvider.java class LettucePoolingConnectionProvider implements LettuceConnectionProvider, RedisClientProvider, DisposableBean { private static final Log log = LogFactory.getLog(LettucePoolingConnectionProvider.class); private final LettuceConnectionProvider connectionProvider; private final GenericObjectPoolConfig poolConfig; private final Map<StatefulConnection<?, ?>