使用 JedisAPI 操作 Redis
Jedis 集成了 redis 的一些命令操作,封装了对redis命令的 Java 客户端,通过redis可以远程的操作Redis。
1、创建项目,这里选择的是创建的为Maven项目。
2、添加坐标依赖。
<dependencies>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
</dependencies>
3、创建类进行测试。
3.1、创建Jedis对象,将ip和端口作为参数。
3.2、调用Jedis中的set进行存储数据,这个set是String类型的,存储成功返回ok。
3.2、调用Jedis中的get获取数据。
string类型
Hash类型的
测试使用连接池操作 Redis 单机版
Jedis操作集群
1、启动集群。
2、在测试类中创建操作集群的JedisCluster对象。Cluster:集群
3、因该对象需要集群中的节点,所以需要获取到集群中的节点,需要多个节点,这里使用集合来存储。
4、将集群中的节点作为参数传递给JedisCluster对象。
5、测试存取数据。
Spring整合Jedis单机版-创建项目定义JedisDao
1、创建Maven项目
2、导入坐标依赖。Jedis、spring-bean、spring-context
3、创建接口和实现类。
4、添加spring配置文件。
<?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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 扫描bean对象 -->
<context:component-scan base-package="com.sxt.JedisDao" />
<!-- 开启扫描 -->
<bean id="jedisDaoImpl" class="com.sxt.Jedisdao.impl.JedisDaoImpl"></bean>
<!-- 配置jedisPool -->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="poolConfig">
<ref bean="poolconfig" />
</constructor-arg>
<constructor-arg name="host">
<value>192.168.130.131</value>
</constructor-arg>
<constructor-arg name="port">
<value>6379</value>
</constructor-arg>
</bean>
<!-- jedisPool 的配置 -->
<bean id="poolconfig" class="redis.clients.jedis.JedisPoolConfig">
<!-- 最大连接数 -->
<property name="maxTotal" value="30" />
<!-- 最大空闲连接数 -->
<property name="maxIdle" value="10" />
<!-- 每次释放连接的最大数目 -->
<property name="numTestsPerEvictionRun" value="1024" />
<!-- 释放连接的扫描间隔(毫秒) -->
<property name="timeBetweenEvictionRunsMillis" value="30000" />
<!-- 连接最小空闲时间 -->
<property name="minEvictableIdleTimeMillis" value="1800000" />
<!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 -->
<property name="softMinEvictableIdleTimeMillis" value="10000" />
<!-- 获取连接时的最大等待毫秒数,小于零:阻塞不 确定的时间,默认-1 -->
<property name="maxWaitMillis" value="1500" />
<!-- 在获取连接的时候检查有效性, 默认 false -->
<property name="testOnBorrow" value="true" />
<!-- 在空闲时检查有效性, 默认 false -->
<property name="testWhileIdle" value="true" />
<!-- 连接耗尽时是否阻塞, false 报异常,ture 阻塞 直到超时, 默认 true -->
<property name="blockWhenExhausted" value="false" />
</bean>
</beans>
5、测试
Spring整合JedisCluster
1、创建接口
2、实现类。
3、在spring配置文件中修改配置信息。
<?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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 扫描bean对象 -->
<context:component-scan base-package="com.sxt.JedisDao" />
<!-- jedisPool 的配置 -->
<bean id="poolconfig" class="redis.clients.jedis.JedisPoolConfig">
<!-- 最大连接数 -->
<property name="maxTotal" value="30" />
<!-- 最大空闲连接数 -->
<property name="maxIdle" value="10" />
<!-- 每次释放连接的最大数目 -->
<property name="numTestsPerEvictionRun" value="1024" />
<!-- 释放连接的扫描间隔(毫秒) -->
<property name="timeBetweenEvictionRunsMillis" value="30000" />
<!-- 连接最小空闲时间 -->
<property name="minEvictableIdleTimeMillis" value="1800000" />
<!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 -->
<property name="softMinEvictableIdleTimeMillis" value="10000" />
<!-- 获取连接时的最大等待毫秒数,小于零:阻塞不 确定的时间,默认-1 -->
<property name="maxWaitMillis" value="1500" />
<!-- 在获取连接的时候检查有效性, 默认 false -->
<property name="testOnBorrow" value="true" />
<!-- 在空闲时检查有效性, 默认 false -->
<property name="testWhileIdle" value="true" />
<!-- 连接耗尽时是否阻塞, false 报异常,ture 阻塞 直到超时, 默认 true -->
<property name="blockWhenExhausted" value="false" />
</bean>
<bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
<constructor-arg name="nodes">
<set>
<!-- 初始化HostAndPort -->
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host">
<value>192.168.130.131</value>
</constructor-arg>
<constructor-arg name="port">
<value>8001</value>
</constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host">
<value>192.168.130.131</value>
</constructor-arg>
<constructor-arg name="port">
<value>8002</value>
</constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host">
<value>192.168.130.131</value>
</constructor-arg>
<constructor-arg name="port">
<value>8003</value>
</constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host">
<value>192.168.130.131</value>
</constructor-arg>
<constructor-arg name="port">
<value>8004</value>
</constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host">
<value>192.168.130.131</value>
</constructor-arg>
<constructor-arg name="port">
<value>8005</value>
</constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host">
<value>192.168.130.131</value>
</constructor-arg>
<constructor-arg name="port">
<value>8006</value>
</constructor-arg>
</bean>
</set>
</constructor-arg>
<constructor-arg name="poolConfig">
<ref bean="poolconfig" />
</constructor-arg>
</bean>
<bean id="jedisDaoImplCluster" class="com.sxt.Jedisdao.impl.JedisDaoImplCluster"></bean>
</beans>
4、测试集群
RedisDesktopManager的使用
当添加或者修改key时,需要reload