当前位置: 首页 > 编程笔记 >

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

仲法
2023-03-14
本文向大家介绍Spring集成jedis的配置与使用简单实例,包括了Spring集成jedis的配置与使用简单实例的使用技巧和注意事项,需要的朋友参考一下

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=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操作:

  @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;
  }

总结

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

 类似资料:
  • 本文向大家介绍Spring集成Quartz的简单配置的方法,包括了Spring集成Quartz的简单配置的方法的使用技巧和注意事项,需要的朋友参考一下 不过在实际的工作中,很少会直接用到它。通常都是用的spring-quartz组件,直接通过配置,让spring框架来自动装配 如下就是spring框架集成quartz组件,配置定时任务的方法 1. Maven依赖 其中quartz包是核心包,它负责

  • 本文档已移动到 NoSQL-Redis

  • 本文向大家介绍Spring Boot配置Thymeleaf(gradle)的简单使用,包括了Spring Boot配置Thymeleaf(gradle)的简单使用的使用技巧和注意事项,需要的朋友参考一下 最近项目用到了Spring Boot ,但是在控制器返回html视图并渲染参数的时候,存在了疑问。后面考虑用Thymeleaf ,感觉真的不错,下面分享给大家 总共四步: jar 引入 控制器参数

  • 本文向大家介绍Spring Boot集成MyBatis实现通用Mapper的配置及使用,包括了Spring Boot集成MyBatis实现通用Mapper的配置及使用的使用技巧和注意事项,需要的朋友参考一下 什么是通用Mapper 通用Mapper就是为了解决单表增删改查,基于Mybatis的插件。开发人员不需要编写SQL,不需要在DAO中增加方法,只要写好实体类,就能支持相应的增删改查方法。 关

  • 本文向大家介绍springmvc与mybatis集成配置实例详解,包括了springmvc与mybatis集成配置实例详解的使用技巧和注意事项,需要的朋友参考一下 简单之美,springmvc,mybatis就是一个很好的简单集成方案,能够满足一般的项目需求。闲暇时间把项目配置文件共享出来,供大家参看: 1.首先我们来看下依赖的pom: spring 选用的是4.1.4的版本,根据系统需要我们可以

  • 通过和注释,我得到以下错误: 然后添加以下配置: 错误消失了。但是,我想我应该能够按照文档中的建议,使用属性自动配置它。 null