文章目录
4.xxx
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.8.9.RELEASE</version>
</dependency>
/src/main/resource
文件夹下新建一个redis.properties
文件,其中设置redis的配置信息hostName=39.105.123.197
port=6379
timeout=15000
usePool=true
maxIdle=80
minIdle=80
maxWaitMillis=500
minEvictableIdleTimeMillis=300000
numTestsPerEvictionRun=3
timeBetweenEvictionRunsMillis=60000
testOnBorrow=true
testOnReturn=false
testOnCreate=false
src/main/resource
文件夹下新建一个文件spring-redis.xml
JedisPoolConfig
JedisConnectionFactory
RedisTemplate
,用于操作Redis数据库<!-- 加载redis.properties,其中定义了数据库的配置信息 -->
<util:properties id="redisConfig" location="classpath:redis.properties" />
<!-- 配置Redis的连接池 -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<!-- 配置最大空闲连接数,当空闲连接超过该值时就挨个关闭多余的连接,但不能小于minldle -->
<property name="maxIdle" value="#{redisConfig.maxIdle}"></property>
<!-- 配置最小空闲连接数 -->
<property name="minIdle" value="#{redisConfig.minIdle}"></property>
<!-- 验证连接是否有效 -->
<!-- 设置获取连接的时候测试连接是否可用,默认为false -->
<property name="testOnBorrow" value="#{redisConfig.testOnBorrow}"></property>
<!-- 新建连接的时候测试连接是否可用,默认为false -->
<property name="testOnCreate" value="#{redisConfig.testOnCreate}"></property>
<!-- 将连接释放回连接池的时候测试连接 默认为false -->
<property name="testOnReturn" value="#{redisConfig.testOnReturn}"></property>
<!-- 设置等待获取连接池连接的时间,一旦超过这个时间,抛出异常 单位毫秒 -->
<property name="maxWaitMillis" value="#{redisConfig.maxWaitMillis}"></property>
<!-- 连接空闲多久从池中去除,单位为毫秒 <=0表示禁用 -->
<property name="minEvictableIdleTimeMillis" value="#{redisConfig.minEvictableIdleTimeMillis}"></property>
<!-- 设置每次测试多少空闲连接 <=0表示禁用 -->
<property name="numTestsPerEvictionRun" value="#{redisConfig.numTestsPerEvictionRun}"></property>
<!-- 设置定时测试时间,单位毫秒 <=0表示禁用 -->
<property name="timeBetweenEvictionRunsMillis" value="#{redisConfig.timeBetweenEvictionRunsMillis}"></property>
</bean>
<bean id="jedisConnFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<!-- 设置是否使用连接池,默认为true -->
<property name="usePool" value="#{redisConfig.usePool}" />
<!-- 设置连接池,使用上面配置好的连接池jedisPoolConfig -->
<property name="poolConfig" ref="jedisPoolConfig"></property>
<!-- 设置远程的IP地址 -->
<property name="hostName" value="#{redisConfig.hostName}" />
<!-- 设置端口号,默认为6379 -->
<property name="port" value="#{redisConfig.port}"></property>
<!-- 设置获取连接的超时时间 -->
<property name="timeout" value="#{redisConfig.timeout}"></property>
</bean>
<!-- 配置 StringRedisSerializer序列化 -->
<bean id="stringRedisSerializer"
class="org.springframework.data.redis.serializer.StringRedisSerializer" />
<bean id="jdkSerializationRedisSerializer"
class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" />
<!-- 配置RedisTemplate,其中封装了操作Redis的各种方法 -->
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<!-- 配置Jedis的连接工厂,引用上面 -->
<property name="connectionFactory" ref="jedisConnFactory" />
<!-- 配置key的序列化 一般都会使用stringRedisSerializer,默认使用的是JdkSerializationRedisSerializer -->
<property name="keySerializer" ref="stringRedisSerializer"></property>
<!-- 配置JdkSerializationRedisSerializer序列化 -->
<property name="valueSerializer" ref="jdkSerializationRedisSerializer"></property>
<!-- 配置hashkey的序列化,就是field -->
<property name="hashKeySerializer" ref="stringRedisSerializer"></property>
<!-- 配置hashvalue的值的序列化 -->
<property name="hashValueSerializer" ref="jdkSerializationRedisSerializer"></property>
</bean>
Key-Value
的序列号,在使用RedisTemplate
对象是默认使用JdkSerializationRedisSerializer
实现。还提供了其它的序列化实现如:Jackson2JsonRedisSerializer
,JacksonJsonRedisSerializer
,GenericToStringSerializer
,StringRedisSerializer
,OxmSerializer
。JdkSerializationRedisSerializer
,但是我们的key
使用的是StringRedisSerializer
Key类型操作 | |
---|---|
ValueOperations | Redis String/Value 操作 |
ListOperations | Redis List 操作 |
SetOperations | Redis Set 操作 |
ZSetOperations | Redis Sort Set 操作 |
HashOperations | Redis Hash 操作 |
Value约束操作 | |
BoundValueOperations | Redis String/Value key 约束 |
BoundListOperations | Redis List key 约束 |
BoundSetOperations | Redis Set key 约束 |
BoundZSetOperations | Redis Sort Set key 约束 |
BoundHashOperations | Redis Hash key 约束 |