applicationContext-redis.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd "> <!-- jedis pool配置 --> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxTotal" value="10000" /> <property name="maxIdle" value="100" /> <property name="maxWaitMillis" value="1000" /> <!-- 向调用者输出“链接”资源时,是否检测是有有效,如果无效则从连接池中移除,并尝试获取继续获取。设为true,一个挂都不能用 --> <property name="testOnBorrow" value="true" /> <!-- 向连接池“归还”链接时,是否检测“链接”对象的有效性。 --> <property name="testOnReturn" value="true" /> </bean> <bean id="jedisPool" class="redis.clients.jedis.JedisSentinelPool"> <constructor-arg index="0" value="mymaster" /> <constructor-arg index="1"> <set> <value>172.19.59.50:26379</value><!--配置了一个哨兵 --> </set> </constructor-arg> <constructor-arg index="2" ref="jedisPoolConfig" /> <constructor-arg index="3" value="30000" /> <constructor-arg index="4"> <null /> </constructor-arg> <constructor-arg index="5" value="0" /> </bean> </beans>
测试代码:
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisSentinelPool; import redis.clients.jedis.exceptions.JedisException; public class TestRedisPool { public static void main(String[] args) { ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext-redis.xml"); JedisSentinelPool pool = (JedisSentinelPool) ac.getBean("jedisPool"); Jedis jedis = null; try { jedis = pool.getResource(); jedis.set("foo", "test"); String redisStr = jedis.get("foo"); System.out.println(redisStr); } catch (JedisException je) { throw je; } finally { if (jedis != null) pool.returnResource(jedis); } } }
输出结果:
八月 22, 2017 11:19:55 上午 redis.clients.jedis.JedisSentinelPool initSentinels 信息: Trying to find master from available Sentinels... 八月 22, 2017 11:19:55 上午 redis.clients.jedis.JedisSentinelPool initSentinels 信息: Redis master running at 172.19.59.50:6381, starting Sentinel listeners... 八月 22, 2017 11:19:55 上午 redis.clients.jedis.JedisSentinelPool initPool 信息: Created JedisPool to master at 172.19.59.50:6381 11:19:55.782 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Eagerly caching bean 'jedisPool' to allow for resolving potential circular references 11:19:55.782 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Finished creating instance of bean 'jedisPool' 11:19:55.783 [main] DEBUG org.springframework.context.support.ClassPathXmlApplicationContext - Unable to locate LifecycleProcessor with name 'lifecycleProcessor': using default [org.springframework.context.support.DefaultLifecycleProcessor@6054cd1b] 11:19:55.783 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Returning cached instance of singleton bean 'lifecycleProcessor' 11:19:55.784 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Returning cached instance of singleton bean 'jedisPool' test
相关推荐
本教程将深入探讨如何在Spring环境中整合Redis,包括使用Spring Redis模板、连接池、哨兵系统以及JSON序列化,并进一步讨论在集群环境中的应用。 首先,Spring Redis模板是Spring Data Redis项目的一部分,它为操作...
然后,Spring Boot会自动创建一个连接池配置并初始化`JedisConnectionFactory`,这样我们就可以在应用程序中使用`RedisTemplate`进行操作。 3. **RedisTemplate的使用** `RedisTemplate`是Spring Data Redis提供...
在实际项目中,你可能还需要考虑其他因素,比如Redis连接池的配置、超时时间、重试策略等。此外,对于高并发场景,可以考虑使用Redisson或Jedis Sentinel Pool等客户端,它们提供了更丰富的功能和优化选项。 总结来...
在现代Web应用开发中,Spring Boot以其便捷的配置和快速的开发能力深受开发者喜爱,而Redis作为高性能的键值数据库,常被用作缓存、消息队列等用途。本教程将详细介绍如何在Spring Boot项目中整合Redis,涵盖单机版...
基于`SpringBoot2.X + Lettuce`实现Redis集成和多库实时切换...项目中通过`application.properties`或`application.yml`文件配置Redis连接信息,如主机地址、端口号、密码等。可以配置多个Redis实例,用于实现多库切换。
Redis是一款高性能的键值对数据存储系统,常用于缓存、消息队列、计数器等多种场景。Spring框架是Java领域广泛使用的应用框架...在实际项目中,根据需求还可以进行更复杂的配置,如设置哨兵或集群模式、配置连接池等。
* `spring.redis.jedis.pool.max-active=2000`: 设置 Redis 连接池的最大活动连接数为 2000。 * `spring.redis.jedis.pool.max-idle=100`: 设置 Redis 连接池的最大空闲连接数为 100。 * `spring.redis.jedis.pool....
- 连接池管理:合理配置连接池大小,避免资源浪费和连接溢出。 - 数据结构选择:根据业务场景选择合适的Redis数据结构,如字符串、哈希、列表、集合和有序集合,以提高操作效率。 - 避免阻塞操作:尽量使用非阻塞...
在实际应用中,开发者可以结合Spring Boot的自动配置功能,通过简单的配置就能完成对Redis连接器的配置,实现对Redis数据库的高效访问。例如,使用Jedis或Lettuce连接器,可以创建专门的配置类来定义Bean,并且通过@...
- 设置Redis连接池,配置Sentinel的主机和端口,建立Sentinel客户端。 - 在需要缓存的方法上添加Redis注解,指定缓存的key和过期策略。 - 测试和调试,确保所有组件正常工作且能够正确处理异常情况。 以上知识点...
课程目标基于Linux安装Redis,让同学们学习到Redis的基础知识,持久化、哨兵及集群HA 适用人群NoSQL后端开发人员 课程简介基于Linux安装Redis5.x,课程内容讲解Redis的基础操作,AOF/RDB及哨兵机制原理与高可用实现...
8. **SentinelConfigurations**:如果Redis集群中使用了哨兵(Sentinel)进行高可用性保障,还需要配置哨兵的相关参数。 9. **ClusterConfigurations**:对于Redis集群,还需要配置集群的相关信息,如节点地址等。 ...
Redis从入门到精通2024版 视频教程 下载 ├─第 01 章 开篇 │ 001.Redis 录制计划.mp4 │ 002.Redis 介绍.mp4 │ 003.Redis 安装.mp4 │ ├─第 02 章 基本数据类型 │ 01.在后台启动 Redis.mp4 │ 02....
7. **测试集群**:编写Spring Boot应用,配置Redis连接池(如Jedis或Lettuce),并通过API进行读写操作,验证集群工作正常。 在Spring Boot应用中配置Redis集群,通常需要以下步骤: 1. 添加相关依赖:在`pom.xml`...
- 配置连接池:设置连接池参数,如最大空闲连接数、最大活跃连接数等。 - 配置RedisTemplate:定义键值的序列化方式等。 - 使用Redis:在业务逻辑层使用`RedisTemplate`进行CRUD操作。 ### 知识点四:Session...
Redis从入门到精通2024版 视频教程 下载 ├─第 01 章 开篇 │ 001.Redis 录制计划.mp4 │ 002.Redis 介绍.mp4 │ 003.Redis 安装.mp4 │ ├─第 02 章 基本数据类型 │ 01.在后台启动 Redis.mp4 │ 02....
Redis从入门到精通2024版 视频教程 下载 ├─第 01 章 开篇 │ 001.Redis 录制计划.mp4 │ 002.Redis 介绍.mp4 │ 003.Redis 安装.mp4 │ ├─第 02 章 基本数据类型 │ 01.在后台启动 Redis.mp4 │ 02....
缓存应用(连接池,切片连接池,哨兵模式) 备注:哨兵,分片,最大化 哨兵模式集群(一主多从):每个节点拥有所有数据,内存限制 | 改进(解决内存问题) | 分片多主多从:客户端分配key存储。数据分布在多个节点...
3. **配置redis session store**:引入`spring-session-data-redis`或`tomcat-redis-session-manager`等相关依赖库,这两个库提供了将session数据保存到`redis`的接口。在`web.xml`中,配置`SessionConfig`,指定...
"Boot整合redis.zip"这个压缩包文件很可能包含了将Spring Boot应用与Redis集成的相关教程、配置文件或代码示例。下面我们将详细探讨如何在Spring Boot项目中整合Redis。 1. **添加依赖** 在Spring Boot项目中整合...