在Springboot下使用Jedis操作redis---jedis在代码中的使用

上一篇我们完成了jedis的配置,接下来看一下jedis在Springboot中的使用。

首先重新写一下自己项目的Dao文件(service),比如我的项目,UerBean有三个属性,手机号码(telephoneNUmber),密码(password),还有一个就是建立table的时候自动生成的表的唯一标识,uuid。


首先,原来的Dao文件存在着UserDao.java 文件,里面的findUUidByTelephoneNumber 方法,(通过手机号码获得uuid)

public String findUuidByTelephoneNumber(String telephoneNumber)
{
    return (String ) sessionFactory.getCurrentSession().createQuery("select uuid from UserBean where telephoneNumber= :telephoneNumber")
            .setParameter("telephoneNumber", telephoneNumber)
            .uniqueResult();
}

利用jedis来重新写一个class,UserDao_Redis.java

public String findUuidByTelephoneNumber(String telephoneNumber) {

    String key = "User_uuidByTelephone" + telephoneNumber;//前面加入一个前缀,辨认性更强
    String result;

    try {
        shardedJedis = shardedJedisPool.getResource();//在缓存池里取出缓存
        result = shardedJedis.get(key);
        if (result == null) {
            userDao.findUuidByTelephoneNumber(telephoneNumber);
            writeEntryToCacheAndSetExpire(key, result);//在下面后有代码介绍
        }
    } catch (Exception e) {
        e.printStackTrace();
        throw new IllegalStateException();
    } finally {
        if (shardedJedis != null)
            shardedJedis.close();//记得最后使用完了要关闭幺
    }
    return result;
}
注释:使用try {}catch(){}是确保程序能够运行,

finally{}确保shardedjedis能够返回缓存池(这里并不是吧它给关闭了)详细的可以看一下《Redis的开发和运维》这一本书的java客户端-Jedis(4章2节)

接下来就是writeEntryToCacheAndSetExpire 方法了,顾名思义没就是写一个缓存的入口和设置过期时间。

public void writeEntryToCacheAndSetExpire(String key, String value){

    shardedJedis.set(key, value);
    shardedJedis.expire(key, jedisKeyExpireAfterSecond);
}

还有就是在整个xxDao_Redis.java 下加入他丫,

@Value("${jedis.key.expireAfterSeconds}")
private int jedisKeyExpireAfterSecond;

还有就是常识性的问题:别忘了@Autowired 注入shardedJedispool 呀!


最后,就是Controller层面的代码了,这个没有什么可以讲的,就是把之前的在xxxDao.java的调用方法改为xxxDao_Redis.java的调用方法就好了。

大功告成,赶紧是一下吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值