使用 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获取数据。





redis自动释放连接 redis 释放连接_redis 命令 释放连接


string类型

Hash类型的


redis自动释放连接 redis 释放连接_redis_02


测试使用连接池操作 Redis 单机版


redis自动释放连接 redis 释放连接_xml_03



Jedis操作集群

1、启动集群。

2、在测试类中创建操作集群的JedisCluster对象。Cluster:集群

3、因该对象需要集群中的节点,所以需要获取到集群中的节点,需要多个节点,这里使用集合来存储。

4、将集群中的节点作为参数传递给JedisCluster对象。

5、测试存取数据。


redis自动释放连接 redis 释放连接_redis_04


Spring整合Jedis单机版-创建项目定义JedisDao

1、创建Maven项目

2、导入坐标依赖。Jedis、spring-bean、spring-context

3、创建接口和实现类。


redis自动释放连接 redis 释放连接_redis 命令 释放连接_05


redis自动释放连接 redis 释放连接_spring_06


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、测试


redis自动释放连接 redis 释放连接_redis_07


Spring整合JedisCluster

1、创建接口


redis自动释放连接 redis 释放连接_spring_08


2、实现类。


redis自动释放连接 redis 释放连接_redis 命令 释放连接_09


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、测试集群


redis自动释放连接 redis 释放连接_redis_10


RedisDesktopManager的使用

当添加或者修改key时,需要reload


redis自动释放连接 redis 释放连接_redis 命令 释放连接_11


redis自动释放连接 redis 释放连接_xml_12