springboot集成redis -RedisTemplate使用

1.安装redis单机

2.引入pom依赖

java 复制代码
 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

3.application.yml文件

复制代码
server:
  port: 9999
spring:
  redis:
    host: 192.168.18.132
    port: 6379
    password:
    database: 0
    timeout: 2000ms

4.redisconfig配置

java 复制代码
@Configuration
public class RedisConfig {

    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(redisConnectionFactory);

        // 设置 key 和 value 的序列化方式
        template.setKeySerializer(new StringRedisSerializer());
        template.setValueSerializer(new GenericJackson2JsonRedisSerializer());

        return template;
    }
}

5.RedisTemplate使用(5种基本类型,3种特殊类型,管道类型)

java 复制代码
@SpringBootTest
public class RedisTestService {

    @Autowired
    private RedisTemplate redisTemplate;


    @Test
    public void  test01(){
        //字符串操作
        redisTemplate.opsForValue().set("name1","tony");
        redisTemplate.opsForValue().set("name2","lucy",10, TimeUnit.MINUTES);
        String value = redisTemplate.opsForValue().get("name1");
        System.out.println(value);
        
        //集合操作 list是一个双端队列
        redisTemplate.opsForList().leftPush("messages", "msg3");
        redisTemplate.opsForList().rightPush("messages", "msg-1");
        redisTemplate.opsForList().leftPop("messages");
        redisTemplate.opsForList().rightPop("messages");
        List<Object> range = redisTemplate.opsForList().range("messages", 0, -1);
        
        //集合操作 栈 lpush+lpop=Stack(栈)
		redisTemplate.opsForList().leftPush("messages", "msg1");
        redisTemplate.opsForList().leftPush("messages", "msg2");
        redisTemplate.opsForList().leftPush("messages", "msg3");
        redisTemplate.opsForList().leftPush("messages", "msg4");
        redisTemplate.opsForList().leftPush("messages", "msg5");
        redisTemplate.opsForList().leftPop("messages");
        
        //集合操作 队列 lpush+rpop=Queue(队列)
        redisTemplate.opsForList().leftPush("messages", "msg1");
        redisTemplate.opsForList().rightpop("messages");
        
        //集合操作 lpush+ltrim=Capped Collection(有限集合)
        redisTemplate.opsForList().leftPush("limit-message", "msg1");
        redisTemplate.opsForList().leftPush("limit-message", "msg2");
        redisTemplate.opsForList().leftPush("limit-message", "msg3");
        redisTemplate.opsForList().leftPush("limit-message", "msg4");
        redisTemplate.opsForList().leftPush("limit-message", "msg5");
        redisTemplate.opsForList().leftPush("limit-message", "msg6");
        redisTemplate.opsForList().leftPush("limit-message", "msg7");
        redisTemplate.opsForList().leftPush("limit-message", "msg8");
        redisTemplate.opsForList().trim("limit-message",0,3);

        //hash操作 优势 比整体序列化更节省空间
        redisTemplate.opsForHash().put("user:1001", "name", "Alice");
        redisTemplate.opsForHash().put("user:1001", "age", "18");
        redisTemplate.opsForHash().put("user:1001", "name", "Alice2");

        //set操作
        redisTemplate.opsForSet().add("message-set", "message-set-01");
        redisTemplate.opsForSet().add("message-set", "message-set-02");
        redisTemplate.opsForSet().add("message-set", "message-set-03");
        redisTemplate.opsForSet().add("message-set", "message-set-04");

        redisTemplate.opsForSet().isMember("message-set", "message-set");
        redisTemplate.opsForSet().size("message-set");
        redisTemplate.opsForSet().members("message-set");
        redisTemplate.opsForSet().randomMember("message-set");
        redisTemplate.opsForSet().randomMembers("message-set", 6);

        redisTemplate.opsForSet().pop("message-set");
        redisTemplate.opsForSet().remove("message-set", "message-set");
        //zset操作
        //管道操作
    }
}
相关推荐
短剑重铸之日20 分钟前
《7天学会Redis》特别篇: Redis分布式锁
java·redis·分布式·后端·缓存·redission·看门狗机制
小北方城市网41 分钟前
SpringBoot 全局异常处理与接口规范实战:打造健壮可维护接口
java·spring boot·redis·后端·python·spring·缓存
Chan161 小时前
【 微服务SpringCloud | 方案设计 】
java·spring boot·微服务·云原生·架构·intellij-idea
hanqunfeng1 小时前
(三十三)Redisson 实战
java·spring boot·后端
计算机毕设指导61 小时前
基于微信小程序的运动场馆服务系统【源码文末联系】
java·spring boot·微信小程序·小程序·tomcat·maven·intellij-idea
Mr__Miss1 小时前
Redis网络模型
数据库·redis·面试
亲爱的非洲野猪2 小时前
Apigee Hybrid 数据存储架构详解:Redis与数据库的精确分工
数据库·redis·架构
不想写bug呀2 小时前
Redis基础知识及五种类型操作
数据库·redis·缓存
小北方城市网2 小时前
SpringBoot 集成 MyBatis-Plus 实战(高效 CRUD 与复杂查询):简化数据库操作
java·数据库·人工智能·spring boot·后端·安全·mybatis
alonewolf_992 小时前
Redis7底层数据结构深度解析:从源码透视高性能设计精髓
数据结构·redis·分布式架构