Redis使用RedisTemplate模板类的常用操作方式

yizhihongxing

RedisTemplate是Spring框架提供的一个用于操作Redis的模板类,它提供了丰富的API,可以方便地进行Redis的操作。常用的操作方式包括:

连接Redis服务器

在使用Redis时,首先需要创建RedisTemplate对象,并设置连接工厂。连接工厂分为JedisConnectionFactory和LettuceConnectionFactory两种,本例中我们使用JedisConnectionFactory。

@Configuration
public class RedisConfig {
    @Bean(name = "redisTemplate")
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
        RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
        template.setConnectionFactory(connectionFactory);
        template.setKeySerializer(new StringRedisSerializer());
        template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
        return template;
    }

    @Bean
    public JedisConnectionFactory redisConnectionFactory() {
        JedisConnectionFactory factory = new JedisConnectionFactory();
        factory.setHostName("127.0.0.1");
        factory.setPort(6379);
        return factory;
    }
}

添加、获取数据

  • 添加数据
@Autowired
RedisTemplate<String, Object> redisTemplate;

public void addData(String key, Object value) {
    redisTemplate.opsForValue().set(key, value);
}
  • 获取数据
@Autowired
RedisTemplate<String, Object> redisTemplate;

public Object getData(String key) {
    return redisTemplate.opsForValue().get(key);
}

删除数据

@Autowired
RedisTemplate<String, Object> redisTemplate;

public void deleteData(String key) {
    redisTemplate.delete(key);
}

操作Hash

  • 添加Hash数据
@Autowired
RedisTemplate<String, Object> redisTemplate;

public void addHashData(String key, String hashKey, Object value) {
    redisTemplate.opsForHash().put(key, hashKey, value);
}
  • 获取Hash数据
@Autowired
RedisTemplate<String, Object> redisTemplate;

public Object getHashData(String key, String hashKey) {
    return redisTemplate.opsForHash().get(key, hashKey);
}
  • 删除Hash数据
@Autowired
RedisTemplate<String, Object> redisTemplate;

public void deleteHashData(String key, String hashKey) {
    redisTemplate.opsForHash().delete(key, hashKey);
}

以上是RedisTemplate使用的常用操作,下面是两个示例:

示例一:添加、获取数据

@Service
public class RedisService {
    @Autowired
    private RedisTemplate<String, Object> redisTemplate;

    public void setData(String key, String value) {
        redisTemplate.opsForValue().set(key, value);
    }

    public String getData(String key) {
        return (String)redisTemplate.opsForValue().get(key);
    }
}

// controller
@RestController
public class RedisController {
    @Autowired
    private RedisService redisService;

    @GetMapping("/addData")
    public String addData(String key, String value) {
        redisService.setData(key, value);
        return "success";
    }

    @GetMapping("/getData")
    public String getData(String key) {
        return redisService.getData(key);
    }
}

示例二:操作Hash

@Service
public class RedisService {
    @Autowired
    private RedisTemplate<String, Object> redisTemplate;

    public void setHashData(String key, String hashKey, String value) {
        redisTemplate.opsForHash().put(key, hashKey, value);
    }

    public String getHashData(String key, String hashKey) {
        return (String)redisTemplate.opsForHash().get(key, hashKey);
    }
}

// controller
@RestController
public class RedisController {
    @Autowired
    private RedisService redisService;

    @GetMapping("/setHashData")
    public String setHashData(String key, String hashKey, String value) {
        redisService.setHashData(key, hashKey, value);
        return "success";
    }

    @GetMapping("/getHashData")
    public String getHashData(String key, String hashKey) {
        return redisService.getHashData(key, hashKey);
    }
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Redis使用RedisTemplate模板类的常用操作方式 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 遥感生态指数(rsei)——图像预处理

    以下是关于“遥感生态指数(RSEI)——图像预处理”的完整攻略,包含两个示例。 遥感生态指数(RSEI)——图像预处理 遥感生态指数(RSEI)是一种用于评估生态系统健康状况的指数。在计算RSEI之前,我们需要对遥感图像进行预处理。以下是关于如何进行图像预处理的详细攻略。 1. 图像校正 在进行图像预处理之前,我们需要对遥感图像进行校正。以下是一个示例: i…

    other 2023年5月9日
    00
  • 机器学习笔记(三)Logistic回归模型

    机器学习笔记(三)Logistic回归模型 简介 Logistic回归模型是一种用于分类问题的模型。与线性回归模型不同的是,Logistic回归模型使用的是sigmoid函数将线性模型输出的连续值映射为0或1的概率值,从而实现二分类任务。本篇文章将介绍Logistic回归模型的原理、损失函数、优化算法以及基于Python的实现方法。 原理 Logistic回…

    其他 2023年3月28日
    00
  • Android软键盘遮挡的四种完美解决方案

    Android软键盘遮挡的四种完美解决方案 在Android应用开发中,经常会遇到软键盘遮挡输入框的问题。如果不加以解决,会严重影响用户体验,因此需要寻找一种完美的解决方案。本文将介绍android软键盘遮挡的四种完美解决方案。 解决方案一:android:windowSoftInputMode属性 在AndroidManifest.xml文件中,在acti…

    other 2023年6月26日
    00
  • excel2019表格怎么插入切换按钮控件?

    要在 Excel 2019 中插入切换按钮控件,可以按照以下步骤进行: 打开 Excel 2019,找到要插入切换按钮的工作表 点击“开发工具”选项卡,如果没有出现该选项卡,可在Excel选项中打开该选项卡 在“开发工具”选项卡中,点击“插入”下的“表单控件” -> “切换按钮” 在工作表中选中想要插入切换按钮的区域,单击并拖动以绘制控件的大小 右键单…

    other 2023年6月27日
    00
  • C语言详细讲解指针数组的用法

    C语言详细讲解指针数组的用法 什么是指针数组? 在C语言中,指针可以指向某个变量的内存地址,并通过指针来操作该变量。指针数组是一种特殊的数组,它的每个元素都是一个指针,指向不同的变量或数组。 指针数组的定义方式如下: type *ptr_array[n]; 其中type表示指针指向的变量类型,*ptr_array表示一个指针数组,n表示数组的长度。 指针数组…

    other 2023年6月25日
    00
  • 全网最全的华为数通认证考试思维导图(二)

    华为数通认证考试是非常重要的行业认证考试之一,需要一定的准备和复习才能获得成功。作者制作了“全网最全的华为数通认证考试思维导图(二)”来帮助考生更好地备考和复习。下面是详细的攻略: 一、认真理解思维导图内容 首先,需要认真学习和理解思维导图内容。思维导图分为三个层级,分别是基础、增强和深入,涵盖了数通所有的重要知识点。需要认真阅读每一个知识点的详细内容,理解…

    other 2023年6月28日
    00
  • 微信小程序全局变量改变监听的实现方法

    微信小程序全局变量改变监听的实现方法攻略 在微信小程序中,要实现全局变量的改变监听,可以通过以下步骤进行操作: 步骤一:创建全局变量 首先,在小程序的app.js文件中创建一个全局变量,可以使用getApp()方法获取小程序实例,并在实例中定义全局变量。例如: // app.js App({ globalData: { count: 0 } }) 在上述示例…

    other 2023年7月29日
    00
  • 完美解决beego 根目录不能访问静态文件的问题

    当我们使用beego框架创建web应用程序时,经常会遇到根目录下无法访问静态文件的问题。这是由于beego默认情况下只允许访问/app/static目录下的静态文件。为了解决这个问题,我们可以按照以下步骤进行设置。 在beego中为静态文件设置别名 在app.conf文件中,我们需要为静态文件设置别名。 [static] #允许所有访问/static/路径下…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部