(1)引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
(2)redis配置
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=192.168.0.24
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=200
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.pool.max-idle=10
# 连接池中的最小空闲连接
spring.redis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=1000
(3)注入StringRedisTemplate 使用
@RestController
@RequestMapping("/user")
public class UserController{
@Autowired
public StringRedisTemplate stringRedisTemplate;
@RequestMapping("/set")
public void setUser() {
User user = new User("张三",18)
String userStr = JSON.toJSONString(user);
stringRedisTemplate.opsForValue().set("user", userStr);
//此处stringRedisTemplate 的set参数key,value都为String。如果value需要存对象,可以将对象转换成json字符串存入。
}
@RequestMapping("/get")
public User getUser() {
String userStr = stringRedisTemplate.opsForValue().get("user");
User user = JSON.parseObject(userStr , User.class);
//将取出的json字符串,转换成对象。
return user;
}
}
附录:
(1)stringRedisTemplate的其他功能使用
stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS); //向redis里存入数据和设置缓存时间
stringRedisTemplate.boundValueOps("test").increment(-1); //val做-1操作
stringRedisTemplate.opsForValue().get("test") //根据key获取缓存中的val
stringRedisTemplate.boundValueOps("test").increment(1); //val +1
stringRedisTemplate.getExpire("test") //根据key获取过期时间
stringRedisTemplate.getExpire("test",TimeUnit.SECONDS) //根据key获取过期时间并换算成指定单位
stringRedisTemplate.delete("test"); //根据key删除缓存
stringRedisTemplate.hasKey("546545"); //检查key是否存在,返回boolean值
stringRedisTemplate.opsForSet().add("red_123", "1","2","3"); //向指定key中存放set集合
stringRedisTemplate.expire("red_123",1000 , TimeUnit.MILLISECONDS); //设置过期时间
stringRedisTemplate.opsForSet().isMember("red_123", "1") //根据key查看集合中是否存在指定数据
stringRedisTemplate.opsForSet().members("red_123"); //根据key获取set集合
(2)fastjson的其他使用
1.对象与字符串之间的互转
将对象转换成为字符串
String userStr = JSON.toJSONString(user);
字符串转换成为对象
User user = JSON.parseObject(userStr, User.class);
2.对象集合与字符串之间的互转
将对象集合转换成为字符串
String usersStr = JSON.toJSONString(users);
将字符串转换成为对象集合
List<User> userList = JSON.parseArray(usersStr, User.class);
3.map与字符串之间互转
map转字符串
String mapStr = JSON.toJSONString(map);
字符串转map
JSONObject jsonObject = JSONObject.parseObject(mapStr);
Map<String,Object> map = (Map<String,Object>)jsonObject;
网友评论