使用redis存储码表的数据

13 篇文章 1 订阅

有时候,为了减少数据库表的关联,提高查询效率,我们会把码表的数据在程序加载的时候加载进redis里,下面就是一个简单的存取代码

1,启动类:注意加粗加线的部分,表示启动的时候会执行的方法。

public class StartUp extends SpringBootServletInitializer implements CommandLineRunner {

    @Autowired(required = false)
    SpringInitRedisService springInitRedisService;

    public static void main(String[] args) {
        SpringApplication.run(StartUp.class,args);
    }

    @Override
    public void run(String... args) {
        springInitRedisService.findSystemParamToRedis();
    }

}

2,其他略过,直接看方法,为了便于理解,直接把存储和获取的代码放进一个方法里了。具体过程就是把model数据转成json存进redis里,然后在获取。转成model。根据关联的字段获取想要的值。

一般来讲,项目组会把存储的过程会封装一下在使用,翻译码值的时候也会使用自定义的方法进行翻译,这里为了简便,略过。

/**
 * 获取码表保存到redis
 * @return
 */
private void findCode(){
    // 获取码表的数据
    List<ShopCodeModel> shopCodeModels = shopCodeMapper.findSysCodes();
    // 放进map里
    Map<String, String> maps = new HashMap<>(16);
    for (int i = 0; i < shopCodeModels.size(); i++) {
        // 转成json    import com.alibaba.fastjson.JSON;
        maps.put(shopCodeModels.get(i).getCode(), JSON.toJSONString(shopCodeModels.get(i)));
    }
    Jedis jedis = new Jedis("localhost");
    // 存入redis
    jedis.hmset("cece", maps);

    // 获取redis的数据
    Map<String, String> map = jedis.hgetAll("cece");
    if (null != map && !map.isEmpty() && map.size() > 0) {
        // 需要翻译的字段。也就是需要关联码表的字段。 import cn.hutool.json.JSONObject;
        JSONObject json = new JSONObject(map.get("fruit_1"));
        // 把 JSONObject 转成 model
        ShopCodeModel stu = json.toBean(ShopCodeModel.class);
        System.out.println("结果:" + stu);
        // 结果:ShopCodeModel(code=fruit_1, codeName=榴莲, codeSort=1)
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值