时间:2021-05-20
jedis是redis的java客户端,spring将redis连接池作为一个bean配置。
redis连接池分为两种,一种是“redis.clients.jedis.ShardedJedisPool”,这是基于hash算法的一种分布式集群redis客户端连接池。
另一种是“redis.clients.jedis.JedisPool”,这是单机环境适用的redis连接池。
maven导入相关包:
<!-- redis依赖包 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>ShardedJedisPool是redis集群客户端的对象池,可以通过他来操作ShardedJedis,下面是ShardedJedisPool的xml配置,spring-jedis.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" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 引入jedis的properties配置文件 --> <!--如果你有多个数据源需要通过<context:property-placeholder管理,且不愿意放在一个配置文件里,那么一定要加上ignore-unresolvable=“true"--> <context:property-placeholder location="classpath:properties/redis.properties" ignore-unresolvable="true" /> <!--shardedJedisPool的相关配置--> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <!--新版是maxTotal,旧版是maxActive--> <property name="maxTotal"> <value>${redis.pool.maxActive}</value> </property> <property name="maxIdle"> <value>${redis.pool.maxIdle}</value> </property> <property name="testOnBorrow" value="true"/> <property name="testOnReturn" value="true"/> </bean> <bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool" scope="singleton"> <constructor-arg index="0" ref="jedisPoolConfig" /> <constructor-arg index="1"> <list> <bean class="redis.clients.jedis.JedisShardInfo"> <constructor-arg name="host" value="${redis.uri}" /> </bean> </list> </constructor-arg> </bean></beans>下面是单机环境下redis连接池的配置:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 引入jedis的properties配置文件 --> <!--如果你有多个数据源需要通过<context:property-placeholder管理,且不愿意放在一个配置文件里,那么一定要加上ignore-unresolvable=“true"--> <context:property-placeholder location="classpath:properties/redis.properties" ignore-unresolvable="true" /> <!--Jedis连接池的相关配置--> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <!--新版是maxTotal,旧版是maxActive--> <property name="maxTotal"> <value>${redis.pool.maxActive}</value> </property> <property name="maxIdle"> <value>${redis.pool.maxIdle}</value> </property> <property name="testOnBorrow" value="true"/> <property name="testOnReturn" value="true"/> </bean> <bean id="jedisPool" class="redis.clients.jedis.JedisPool"> <constructor-arg name="poolConfig" ref="jedisPoolConfig" /> <constructor-arg name="host" value="${redis.host}" /> <constructor-arg name="port" value="${redis.port}" type="int" /> <constructor-arg name="timeout" value="${redis.timeout}" type="int" /> <constructor-arg name="password" value="${redis.password}" /> <constructor-arg name="database" value="${redis.database}" type="int" /> </bean></beans>对应的classpath:properties/redis.properties.xml为:
#最大分配的对象数redis.pool.maxActive=200#最大能够保持idel状态的对象数redis.pool.maxIdle=50redis.pool.minIdle=10redis.pool.maxWaitMillis=20000#当池内没有返回对象时,最大等待时间redis.pool.maxWait=300#格式:redis://:[密码]@[服务器地址]:[端口]/[db index]redis.uri = redis://:12345@127.0.0.1:6379/0redis.host = 127.0.0.1redis.port = 6379redis.timeout=30000redis.password = 12345redis.database = 0二者操作代码类似,都是先注入连接池,然后通过连接池获得jedis实例,通过实例对象操作redis。
ShardedJedis操作:
@Autowired private ShardedJedisPool shardedJedisPool;//注入ShardedJedisPool @RequestMapping(value = "/demo_set",method = RequestMethod.GET) @ResponseBody public String demo_set(){ //获取ShardedJedis对象 ShardedJedis shardJedis = shardedJedisPool.getResource(); //存入键值对 shardJedis.set("key1","hello jedis"); //回收ShardedJedis实例 shardJedis.close(); return "set"; } @RequestMapping(value = "/demo_get",method = RequestMethod.GET) @ResponseBody public String demo_get(){ ShardedJedis shardedJedis = shardedJedisPool.getResource(); //根据键值获得数据 String result = shardedJedis.get("key1"); shardedJedis.close(); return result; }Jedis操作:
@Autowired private JedisPool jedisPool;//注入JedisPool @RequestMapping(value = "/demo_set",method = RequestMethod.GET) @ResponseBody public String demo_set(){ //获取ShardedJedis对象 Jedis jedis = jedisPool.getResource(); //存入键值对 jedis.set("key2","hello jedis one"); //回收ShardedJedis实例 jedis.close(); return "set"; } @RequestMapping(value = "/demo_get",method = RequestMethod.GET) @ResponseBody public String demo_get(){ Jedis jedis = jedisPool.getResource(); //根据键值获得数据 String result = jedis.get("key2"); jedis.close(); return result; }总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Spring-data-redis是spring大家族的一部分,提供了在srping应用中通过简单的配置访问redis服务,对reids底层开发包(Jedis,
Spring集成JSF的最简单方式是使用DelegatingVariableResolver类在faces-config.xml中配置,示例如下:org.spr
客户端采用最新的jedis2.71.maven依赖:redis.clientsjedis2.7.32.增加spring配置classpath:connect-r
与Spring3集成Spring作为基础框架,可以集成后端框架,如Hibernate,MyBatis等。前面是介绍单独使用MyBatis的,大致逻辑是:sqlS
前言SpringDataMongoDB项目提供与MongoDB文档数据库的集成,Spring与Hibernate集成时,Spring提供了org.springf