JavaWeb-使用redis解决频繁访问

1.对于一些要经常访问的数据且不会改变的数据,那么就可以使用redis来缓存这些数据

2.可以使用JedisUtil来优化设计jedis的每次创建代码.

/**
 * Jedis工具类
 */
public final class JedisUtil {
    private static JedisPool jedisPool;

    static {
        //读取配置文件
        InputStream is = JedisPool.class.getClassLoader().getResourceAsStream("jedis.properties");
        //创建Properties对象
        Properties pro = new Properties();
        //关联文件
        try {
            pro.load(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
        //获取数据,设置到JedisPoolConfig中
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal")));
        config.setMaxIdle(Integer.parseInt(pro.getProperty("maxIdle")));

        //初始化JedisPool
        jedisPool = new JedisPool(config, pro.getProperty("host"), Integer.parseInt(pro.getProperty("port")));


    }


    /**
     * 获取连接方法
     */
    public static Jedis getJedis() {
        return jedisPool.getResource();
    }

    /**
     * 关闭Jedis
     */
    public static void close(Jedis jedis) {
        if (jedis != null) {
            jedis.close();
        }
    }
}

3.第一次使用Jedis来存入一个list列表到sortested

 @Override
    public List<Category> findAll() {


        //创建redis
        Jedis jedis = JedisUtil.getJedis();
        Set<String> categoryNameStr= jedis.zrange("category", 0, -1);

        List<Category> listCategory=null;

        //如果是第一次查询不存在就传入redis
        if (categoryNameStr==null&&categoryNameStr.size()==0){
            //查询道列表
            listCategory = categoryDao.findAll();
            //存入redis:sortedset排序集合,
            for (Category category : listCategory) {
                jedis.zadd("category",category.getCid(),category.getCname());
            }
        }else {
            //如果存在,那么就从redis中取出来直接使用,就不要再去查询数据库了
            Category category=new Category();
            for (String s : categoryNameStr) {
                category.setCname(s);
                listCategory.add(category);
            }
        }
        return listCategory;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值