springboot整合redis,使用StringRedisTemplate存取对象

(1)引入依赖

            org.springframework.boot

            spring-boot-starter-data-redis


    com.alibaba

    fastjson

    1.2.47 

(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 userList = JSON.parseArray(usersStr, User.class); 

3.map与字符串之间互转

map转字符串  

String mapStr = JSON.toJSONString(map); 

字符串转map

JSONObject  jsonObject = JSONObject.parseObject(mapStr);

Map map = (Map)jsonObject; 

你可能感兴趣的:(springboot整合redis,使用StringRedisTemplate存取对象)