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

来源:互联网 发布:检测普通话的软件 编辑:程序博客网 时间:2024/05/21 05:58

上一篇我们完成了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
原创粉丝点击