spring boot 使用RedisTemplate

1导入包

复制代码
        <!-- redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <exclusions>
                <!-- 不依赖rdisde 异步客户端lettuce-->
                <exclusion>
                    <groupId>io.lettuce</groupId>
                    <artifactId>lettuce-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--引入redis客服端驱动-->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
        </dependency>
复制代码

2,设置初始化

复制代码
    //注入reidstempate
    @Autowired
    private RedisTemplate redisTemplate=null;

    //自定义初始化方法
    @PostConstruct
    public void  init(){
        initeRedisTemplate();
    }
    //设置redistempplte序列化,存入的值不是二进制
    private void  initeRedisTemplate(){
        RedisSerializer stringSerializer=redisTemplate.getStringSerializer();
        redisTemplate.setKeySerializer(stringSerializer);
        redisTemplate.setHashKeySerializer(stringSerializer);
        redisTemplate.setValueSerializer(stringSerializer);
    }

    public static void main(String[] args) {
        SpringApplication.run(ChapterApplication.class, args);
    }
复制代码

3,写代码Controller

复制代码
@Controller
@RequestMapping("/s")
public class RedisController {

    @Autowired
    private RedisTemplate redisTemplate=null;
    @Autowired
    private StringRedisTemplate stringRedisTemplate=null;
    @RequestMapping("/s1")
    @ResponseBody
    public Map<String,Object> testStringAndHash(){

        redisTemplate.opsForValue().set("key1","value1");
        redisTemplate.opsForValue().set("int_ket","1");
        stringRedisTemplate.opsForValue().set("int","1");

        //使用运算符
        stringRedisTemplate.opsForValue().increment("int",1);

        //获取底层jedis链接
        Jedis jedis=(Jedis) stringRedisTemplate.getConnectionFactory().getConnection().getNativeConnection();

        //减1操作 redistemplate不支持
        jedis.decr("int");
        Map<String,String> hash=new HashMap<String,String>();
        hash.put("field1","value1");
        hash.put("field2","value2");
        //存入散列类型
        stringRedisTemplate.opsForHash().putAll("hash",hash);
        //新增一个字段
        stringRedisTemplate.opsForHash().put("hash","field3","calue3");

        //绑定散列惭怍key 操作整个散列数据
        BoundHashOperations hashOps=stringRedisTemplate.boundHashOps("hash");
        //删除2个字段
        hashOps.delete("field1","field2");
        //新增一个字段
        hashOps.put("field4","value4");

        Map<String,Object> map=new HashMap<String,Object>();
        map.put("success",true);

        return map;
    }
}
复制代码
posted @   steven.木子  阅读(1916)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示