gpt4 book ai didi

Spring集成jedis的配置与使用简单实例

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Spring集成jedis的配置与使用简单实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

jedis是redis的java客户端,spring将redis连接池作为一个bean配置.

redis连接池分为两种,一种是“redis.clients.jedis.shardedjedispool”,这是基于hash算法的一种分布式集群redis客户端连接池.

另一种是“redis.clients.jedis.jedispool”,这是单机环境适用的redis连接池.

maven导入相关包:

?
1
2
3
4
5
6
<!-- redis依赖包 -->
<dependency>
  <groupid>redis.clients</groupid>
  <artifactid>jedis</artifactid>
  <version> 2.9 . 0 </version>
</dependency>

shardedjedispool是redis集群客户端的对象池,可以通过他来操作shardedjedis,下面是shardedjedispool的xml配置,spring-jedis.xml:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?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连接池的配置:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?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为:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#最大分配的对象数
redis.pool.maxactive= 200
#最大能够保持idel状态的对象数
redis.pool.maxidle= 50
redis.pool.minidle= 10
redis.pool.maxwaitmillis= 20000
#当池内没有返回对象时,最大等待时间
redis.pool.maxwait= 300
#格式:redis: //:[密码]@[服务器地址]:[端口]/[db index]
redis.uri = redis: //:12345@127.0.0.1:6379/0
redis.host = 127.0 . 0.1
redis.port = 6379
redis.timeout= 30000
redis.password = 12345
redis.database = 0

二者操作代码类似,都是先注入连接池,然后通过连接池获得jedis实例,通过实例对象操作redis.

shardedjedis操作:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@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操作:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@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;
}

总结 。

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我的支持。如果你想了解更多相关内容请查看下面相关链接 。

原文链接:https://blog.csdn.net/u014320421/article/details/80576232 。

最后此篇关于Spring集成jedis的配置与使用简单实例的文章就讲到这里了,如果你想了解更多关于Spring集成jedis的配置与使用简单实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com