公司最近在spring boot中使用redis,使用的是公司内部开发的redis jar。
为了了解如何在spring boot使用原生的redis模板,笔者将从最简单的例子开始:
最简单的配置
Maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
<version>1.4.2.RELEASE</version>
</dependency>
application.yml(或者application.properties)
spring:
redis:
database: 0
host: 10.60.38.159
port: 6379
pool:
max-active: 8
max-wait: -1
max-idle: 8
min-idle: 0
timeout: 0
到这里配置就完成了。没错,如果只需要使用redisTemplate的话配置这么多就够了。网上与许多讲解redis的配置文件,都有许多冗余,估计他们都没有亲自试过。
测试1
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Test
public void test1() {
stringRedisTemplate.opsForValue().append("test","hello redis");
stringRedisTemplate.expire("test", 300, TimeUnit.SECONDS);
String test = stringRedisTemplate.opsForValue().get("test");
System.out.println(test); //输出hello redis
}
上面的例子用于在key中存取基本变量类型或者String,此时应该使用StringRedisTemplate。
其他复杂的值类型,比如Set, Map, List,类等,都应该使用RedisTemplate,例子如下:
测试2
@Autowired
private RedisTemplate redisTemplate;
@Test
public void setString() {
Map<String, String> map = new HashMap<>();
map.put("name", "allan");
map.put("age", "18");
map.put("sex", "男");
redisTemplate.opsForHash().putAll("map",map);
redisTemplate.expire("map",200, TimeUnit.SECONDS);
Map<String, String> mapRedis = (Map<String, String>)redisTemplate.opsForHash().entries("map");
for(Map.Entry entry : mapRedis.entrySet()){
System.out.println(entry.getKey()+" "+entry.getValue());
}
System.out.println(mapRedis.size());
}
测试3
在存储类时,需要额外存储类的名字(其实不一定要名字,只是要一个唯一的表示)
@Autowired
private RedisTemplate redisTemplate;
@Test
public void testClass() {
Address address = new Address();
redisTemplate.opsForHash().put(Address.OBJECT_KEY, address.id, address);
redisTemplate.expire(address.id,200, TimeUnit.SECONDS);
Object add = redisTemplate.opsForHash().get(Address.OBJECT_KEY, address.id);
if(add instanceof Address){
Address addr = (Address) add;
System.out.println(addr.city+":"+addr.street+":"+addr.no);
}
}
@Test //另一种存取类对象的方法
public void testClass2() {
Address address = new Address();
redisTemplate.opsForValue().set(address.id, address);
redisTemplate.expire(address.id,200, TimeUnit.SECONDS);
Object add = redisTemplate.opsForValue().get(address.id);
if(add instanceof Address){
Address addr = (Address) add;
System.out.println(addr.city+":"+addr.street+":"+addr.no);
}
}
//注意,Address一定要新建一个类用于保存,不要放在测试类中
public class Address implements Serializable {
public static final String OBJECT_KEY = "ADDRESS";
public String id;
public String city;
public String street;
public String no;
public Address(){
id = "123456789";
city = "上海市";
street = "沪南路";
no = "2199";
}
}
以上是操作redis的最简单示例。仅仅是使用RedisTemplate 的话并不需要额外的bean配置。
本文介绍了在Spring Boot中如何进行最简单的Redis配置,包括Maven依赖和YAML配置。通过实例展示了使用StringRedisTemplate和RedisTemplate进行基本类型及复杂类型如Set、Map、List的存储。无需过多冗余配置,即可实现RedisTemplate的操作。
:配置redis&spm=1001.2101.3001.5002&articleId=76326135&d=1&t=3&u=c7250718bfb348798e328f6193aaac1c)
4014

被折叠的 条评论
为什么被折叠?



