博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring 整合redis 简单使用
阅读量:6344 次
发布时间:2019-06-22

本文共 5292 字,大约阅读时间需要 17 分钟。

1.简单介绍

redis 是基于C语言开发。

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。

redis 是一个 缓存数据库(片面的理解) 既可以做缓存,也可以将数据持久化到磁盘中!

 2.pom.xml 引入相关jar (曾经因jar 版本问题出现报错,请注意)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<
dependency
>
    
<
groupId
>org.apache.commons</
groupId
>
    
<
artifactId
>commons-pool2</
artifactId
>
    
<
version
>2.2</
version
>
</
dependency
>
 
 
<
dependency
>
    
<
groupId
>org.springframework.data</
groupId
>
    
<
artifactId
>spring-data-redis</
artifactId
>
    
<
version
>1.7.5.RELEASE</
version
>
</
dependency
>
 
<
dependency
>
    
<
groupId
>redis.clients</
groupId
>
    
<
artifactId
>jedis</
artifactId
>
    
<
version
>2.9.0</
version
>
</
dependency
>

3.spring-redis.xml 配置文件,配置关键bean  redisTemplate

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?
xml 
version
=
"1.0" 
encoding
=
"UTF-8"
?>  
<
beans 
xmlns
=
"http://www.springframework.org/schema/beans"
  
xmlns:context
=
"http://www.springframework.org/schema/context" 
xmlns:p
=
"http://www.springframework.org/schema/p"
  
xmlns:mvc
=
"http://www.springframework.org/schema/mvc" 
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
  
xmlns:tx
=
"http://www.springframework.org/schema/tx" 
xmlns:util
=
"http://www.springframework.org/schema/util"
  
xmlns:aop
=
"http://www.springframework.org/schema/aop"
  
xsi:schemaLocation="http://www.springframework.org/schema/beans
   
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   
http://www.springframework.org/schema/context
   
http://www.springframework.org/schema/context/spring-context-3.0.xsd
   
http://www.springframework.org/schema/mvc
   
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    
http://www.springframework.org/schema/tx
    
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    
http://www.springframework.org/schema/aop
  
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
    
http://www.springframework.org/schema/util 
   
http://www.springframework.org/schema/util/spring-util-3.0.xsd">
     
<!--    <context:property-placeholder location="classpath:redis-config.properties"/>    
      
-->
     
     
    
<
bean 
id
=
"jedisPoolConfig" 
class
=
"redis.clients.jedis.JedisPoolConfig"
>
         
<
property 
name
=
"maxIdle" 
value
=
"${redis.maxIdle}" 
/> 
        
<
property 
name
=
"maxTotal" 
value
=
"${redis.maxTotal}" 
/> 
        
<
property 
name
=
"blockWhenExhausted" 
value
=
"true" 
/> 
        
<
property 
name
=
"maxWaitMillis" 
value
=
"${redis.maxWaitMillis}" 
/> 
        
<
property 
name
=
"testOnBorrow" 
value
=
"${redis.testOnBorrow}" 
/> 
    
</
bean
>
   
  
<
bean 
id
=
"jedisConnectionFactory" 
class
=
"org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
    
<
property 
name
=
"hostName" 
value
=
"${redis.hostname}" 
/> 
    
<
property 
name
=
"port" 
value
=
"${redis.port}"
/> 
    
<
property 
name
=
"poolConfig" 
ref
=
"jedisPoolConfig" 
/> 
    
<
property 
name
=
"usePool" 
value
=
"true"
/> 
  
</
bean
   
  
<
bean 
id
=
"redisTemplate" 
class
=
"org.springframework.data.redis.core.RedisTemplate"
>  
    
<
property 
name
=
"connectionFactory"  
ref
=
"jedisConnectionFactory" 
/>  
    
<
property 
name
=
"keySerializer"
>  
      
<
bean 
class
=
"org.springframework.data.redis.serializer.StringRedisSerializer" 
/>  
    
</
property
>   
    
<
property 
name
=
"valueSerializer"
>  
      
<
bean 
class
=
"org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" 
/>  
    
</
property
>  
    
<
property 
name
=
"hashKeySerializer"
>   
      
<
bean 
class
=
"org.springframework.data.redis.serializer.StringRedisSerializer"
/>   
    
</
property
>  
    
<
property 
name
=
"hashValueSerializer"
>  
      
<
bean 
class
=
"org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"
/>   
    
</
property
   
</
bean
   
   
</
beans
>

上文中使用到的配置文件 redis-config.properteis

1
2
3
4
5
6
redis.maxIdle=1
redis.maxTotal=5
redis.maxWaitMillis=30000
redis.testOnBorrow=true
redis.hostname=127.0.0.1
redis.port=6379

4.redis 有4个关键的接口如下

private ValueOperations<K, V> valueOps;

private ListOperations<K, V> listOps;

private SetOperations<K, V> setOps;

private ZSetOperations<K, V> zSetOps;

分别对应redis的数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)

具体使用如下,上代码:

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
34
35
36
//添加字符串
ValueOperations<String, String> value = 
this
.redisTemplate.opsForValue();
value.set(
"hello"
"讨厌"
);
System.out.println(value.get(
"hello"
));
 
 
//添加 一个 hash集合
HashOperations<String, Object, Object>  hash =redisTemplate.opsForHash();
hash.put(
"沃尔玛"
,
"水果"
"苹果"
);
hash.put(
"沃尔玛"
,
"饮料"
"红牛"
);
System.out.println(hash.entries(
"沃尔玛"
));
 
 
//添加一个list 集合
ListOperations<String, Object> list = redisTemplate.opsForList();
list.rightPush(
"课程"
"chinese"
);
list.rightPush(
"课程"
"englise"
);
System.out.println(list.range(
"lpList"
0
1
));
 
 
//添加 一个 set 集合
SetOperations<String, Object> set = redisTemplate.opsForSet();
set.add(
"lpSet"
"lp"
);
set.add(
"lpSet"
"26"
);
set.add(
"lpSet"
"178cm"
);
//输出 set 集合
System.out.println(set.members(
"lpSet"
));
 
 
//添加有序的 set 集合
ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();
zset.add(
"lpZset"
"lp"
0
);
zset.add(
"lpZset"
"26"
2
);
zset.add(
"lpZset"
"178cm"
1
);
//输出有序 set 集合
System.out.println(zset.rangeByScore(
"lpZset"
0
2
));

      本文转自布拉君君 51CTO博客,原文链接:http://blog.51cto.com/5148737/1976501,如需转载请自行联系原作者

你可能感兴趣的文章
Spring_MVC
查看>>
Java统计文件夹中文件总行数
查看>>
python之基本数据类型及深浅拷贝
查看>>
将bootstrap弹出框的点击弹出改为鼠标移入弹出
查看>>
SKF密码设备研究
查看>>
数据对象映射模式(通过工厂模式和注册树模式)v2
查看>>
4939 欧拉函数[一中数论随堂练]
查看>>
MySQL笔记(一)
查看>>
spring boot 包jar运行
查看>>
通过VMWare安装Linux(Ubuntu) 虚拟机在Window10系统和问题解决方案
查看>>
18年秋季学习总结
查看>>
Effective前端1:能使用html/css解决的问题就不要使用JS
查看>>
网络攻防 实验一
查看>>
由莫名其妙的错误开始---浅谈jquery的dom节点创建
查看>>
磨刀-CodeWarrior11生成的Makefile解析
查看>>
String StringBuffer StringBuilder对比
查看>>
.NET与C#
查看>>
在uwp仿制WPF的Window
查看>>
bootstrap随笔点击增加
查看>>
oracle 中proc和oci操作对缓存不同处理
查看>>