zoukankan      html  css  js  c++  java
  • Spring-data-redis操作redis知识总结

    什么是spring-data-redis

    spring-data-redis是spring-data模块的一部分,专门用来支持在spring管理项目对redis的操作;使用java操作redis最常用的是使用jedis,但并不是只有jedis可以使用,像jdbc-redis,jredis也都属于redis的java客户端,他们之间是无法兼容的,如果你在一个项目中使用了jedis,然后后来决定弃用掉改用jdbc-redis就比较麻烦了,spring-data-redis提供了redis的java客户端的抽象,在开发中可以忽略掉切换具体的客户端所带来的影响,而且他本身就属于spring的一部分,比起单纯的使用jedis,更加稳定.管理起来更加自动化.(当然jedis的缺点不止以上);

    spring-data-redis的特性

          1.自动管理连接池,提供了一个高度封装的RedisTemplate类

          2.针对jedis客户端的大量api进行了归类封装,把同一类型的操作封装成了Operation接口.支持redis中的五种数据类型的操作.

      3.针对数据的"序列化与反序列化",提供了多种可以选择的策略(RedisSerializer)

                JdkSerializationRedisSerializer:当需要存储java对象时使用.

                StringRedisSerializer:当需要存储string类型的字符串时使用.

                JacksonJsonRedisSerializer:将对象序列化成json的格式存储在redis中,需要jackson-json工具的支持;

    使用spring-data-redis

    注意:如果需要向redis内存储pojo对象,那么该对象必须要实现Serializable接口,因为在redis中存储pojo类仍然存储的是string,它会把数据转化成byte[]数组的形式,在存取的时候就要对数据格式进行转化,就涉及到了序列化与反序列化.

    public class User implements Serializable {
    
        private static final long serialVersionUID = 1L;
    
        /** 用户ID */
        private Long id;
    
        /** 用户名 */
        private String name;
    
        /** 用户年龄 */
        private Integer age;
    }
    @Controller
    public class UserController extends BaseController {
    
        @Autowired
        private IUserService userService;
    
        @Autowired
        private RedisTemplate<String,User> redisTemplate;
    
        @ResponseBody
        @RequestMapping("/redis")
        public Object redis() {
    
            User u1=new User();
            u1.setId(1L);
            u1.setName("wang");
            u1.setAge(22);
            redisTemplate.opsForValue().set("user:wang",u1);
    
            User u2=redisTemplate.opsForValue().get("user:wang");
            return u2;
        }
    }
  • 相关阅读:
    SPI(1)——Documentation/spi/spi_summary.txt翻译
    TCP协议详解(TCP报文、三次握手、四次挥手、TIME_WAIT状态、滑动窗口、拥塞控制、粘包问题、状态转换图)
    Linux设备树(3)——Linux内核对设备树的处理
    Linux设备树(2)——设备树格式和使用
    [转]Android的taskAffinity
    [转]深入了解iPad上的MouseEvent
    NG2入门
    TypeScript 素描
    TypeScript 素描
    TypeScript 素描
  • 原文地址:https://www.cnblogs.com/xiaoxiao1120/p/13265702.html
Copyright © 2011-2022 走看看