springboot整合redis,使用StringRedisT

作者: Mrmcling | 来源:发表于2019-11-17 10:35 被阅读0次

    (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; 

    相关文章

      网友评论

        本文标题:springboot整合redis,使用StringRedisT

        本文链接:https://www.haomeiwen.com/subject/tyqpictx.html