springboot专题-整合redis

一、简介

Redis :一个NoSQL数据库, 常用作 缓存使用 (cache)
Redis的数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

二、Redis常用命令

2.1.客户端连接

$redis-cli -h 127.0.0.1 -p 6379 -a "mypass"

2.2.设置指定 key 的值

SET key value 

2.3.获取指定 key 的值

GET key   

2.3.获取所有(一个或多个)给定 key 的值

MGET key1 [key2..]

2.4.将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)

SETEX key seconds value

2.5.将 key 中储存的数字值增一

INCR key

三、Springboot搭建redis

3.1.引入相关包

 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-redis</artifactId>
 </dependency>

3.2.RedisTemplate或StringRedisTemplate 对象操作Redis

@Resource
private RedisTemplate redisTemplate;
@Resource
private StringRedisTemplate stringRedisTemplate;

3.3.setReids操作

 	// 添加数据到redis
    @PostMapping("/redis/addstring")
 	public String addToRedis(String k, String v){
        // 操作Redis中string类型的数据, 先获取ValueOperations对象
        redisTemplate.opsForValue().set(k,v);
        return "向redis添加string类型的数据";
    }    
    
    @PostMapping("/redis/{k}/{v}")
    public String addStringKV(@PathVariable  String k,
                              @PathVariable  String v){
        // 使用StringRedisTemplate对象
        stringRedisTemplate.opsForValue().set(k,v);
        return "使用StringRedisTemplate对象";
    }

3.4.getReids操作

	// 从redis获取数据
    @GetMapping("/redis/getk")
    public String getData(String k){
        String v = (String) redisTemplate.opsForValue().get(k);
        return "key是"+k+",值是:"+v;
    }
   
    @GetMapping("/redis/getstr/{k}")
    public String getStringValue(@PathVariable  String k){
        String v  = stringRedisTemplate.opsForValue().get(k);
        return "k的value:"+v;
    }

3.4.设置key或者value的序列化方式

 	/**
     * 使用json 序列化, 把java对象转为json存储
     */ 
    @PostMapping("/redis/addjson")
    public String addJson() {
        Student student = new Student();
        student.setId(1001);
        student.setName("zhangsan");
        student.setAge(20);
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        // 把值作为json序列化
        redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer(Student.class));
        redisTemplate.opsForValue().set("mystudent", student); 
        return "json序列化";
    }


    @PostMapping("/redis/getjson")
    public String getJson() {
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        // 把值作为json序列化
        redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer(Student.class));
        Object obj = redisTemplate.opsForValue().get("mystudent");
        return "json反序列化=" + obj;
    } 

四、对比StringRedisTemplate 和 RedisTemplate

StringRedisTemplate :把k,v 都是作为String处理, 使用的是String的序列化 , 可读性好。
RedisTemplate :把k,v 经过了序列化存到redis。k,v 是序列化的内容, 不能直接识别。默认使用的jdk序列化, 可以修改为前提的序列化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot整合MyBatis-Plus和Redis可以通过以下步骤实现: 1. 添加依赖:在pom.xml文件中添加Spring Boot、MyBatis-Plus和Redis的依赖。 ```xml <!-- Spring Boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MyBatis-Plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus.version}</version> </dependency> <!-- Redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 2. 配置数据源:在application.properties或application.yml中配置数据库连接信息。 ```properties spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase spring.datasource.username=root spring.datasource.password=123456 ``` 3. 配置MyBatis-Plus:创建一个配置类,使用@MapperScan注解指定Mapper接口的扫描路径。 ```java @Configuration @MapperScan("com.example.mapper") public class MybatisPlusConfig { @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } } ``` 4. 创建实体类和Mapper接口:创建实体类和对应的Mapper接口,使用注解进行映射。 ```java @Data @TableName("user") public class User { @TableId(type = IdType.AUTO) private Long id; private String name; } ``` ```java @Mapper public interface UserMapper extends BaseMapper<User> { } ``` 5. 添加Redis配置:在application.properties或application.yml中配置Redis连接信息。 ```properties spring.redis.host=localhost spring.redis.port=6379 ``` 6. 编写业务逻辑:创建Service类,注入Mapper和RedisTemplate,并编写业务逻辑。 ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Autowired private RedisTemplate<String, Object> redisTemplate; @Override public User getUserById(Long id) { // 先从缓存中获取数据 String key = "user:" + id; User user = (User) redisTemplate.opsForValue().get(key); // 如果缓存中不存在,则从数据库中获取数据 if (user == null) { user = userMapper.selectById(id); // 将数据存入缓存 redisTemplate.opsForValue().set(key, user); } return user; } } ``` 这样,你就成功地将Spring Boot、MyBatis-Plus和Redis进行了整合。通过MyBatis-Plus进行数据库操作,并通过Redis进行缓存,提高系统性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yyx-Gary

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值