Java操作Redis(string、hash、list、set)

1.Jedis_string操作

要求:
添加一个string类型数据,key为pv,用于保存pv的值,初始值为0
查询该key对应的数据
修改pv为1000
实现整形数据原子自增操作 +1
实现整形该数据原子自增操作 +1000

    @Test
    public void stringTest() {
        //获取Jedis连接
        Jedis jedis = jedisPool.getResource();

        //添加一个string类型的数据,key为pv,用于保存pv的值,初始值为0
        jedis.set("pv","0");

        //查询该key对应的数据
        System.out.println(jedis.get("pv"));

        //修改pv为1000
        jedis.set("pv","1000");

        //实现整型数据原子自增操作 +1
        jedis.incr("pv");

        //实现整形该数据原子自增操作 +1000
        jedis.incrBy("pv",1000);

        System.out.println(jedis.get("pv"));

        //将jedis对象放回到连接池
        jedis.close();
    }
  • Redis操作string其实和shell命令是一样的
  • 编写程序操作Redis的时候,注意操作完之后,执行close,将连接放回到连接池

2.Jedis_hash操作

要求:
往Hash结构中添加以下商品库存
a) iphone11 => 10000
b) macbookpro => 9000
获取Hash中所有的商品
新增3000个macbookpro库存
删除整个Hash的数据

    @Test
    public void hashTest(){
        Jedis jedis = jedisPool.getResource();

        // 往hash结构中添加以下商品库存
        //         iphone11 => 10000
        //         macbookpro => 9000
        jedis.hset("goods","iphone11","10000");
        jedis.hset("goods","macbookpro","9000");

        // 获取hash中的所有的商品
        System.out.println("所有商品:");
        Set<String> goodSet = jedis.hkeys("goods");
        for (String good : goodSet) {
            System.out.println(good);
        }

        // 新增3000个macbookpro库存
        System.out.println("新增3000个macbookpro库存:");
        System.out.println(jedis.hincrBy("goods", "macbookpro", 3000));

        // 删除整个hash的数据
        jedis.del("goods");

        jedis.close();
    }
  • Java操作Redis时候,涉及到一些数字的累加一定要使用incr、hincrby

3.Jedis_list操作

要求:
向list的左边插入以下三个手机号码:18511310001、18912301231、18123123312
从右边移除一个手机号码
获取list所有的值

    @Test
    public void listTest(){
        Jedis jedis = jedisPool.getResource();

        // 向list的左边插入以下三个手机号码:18511310001、18912301231、18123123312
        jedis.lpush("tel_list","18511310001","18912301231","18123123312");

        // 从右边移除一个手机号码
        jedis.rpop("tel_list");

        // 获取list所有的值
        List<String> tel_list = jedis.lrange("tel_list", 0, -1);
        for (String tel : tel_list) {
            System.out.println(tel);
        }

        jedis.close();
    }
  • List可以用来存储重复的元素,而且是有序的
  • 获取所有的元素,lrange(key, 0, -1)

Jedis_set操作

要求:
使用set来保存uv值,为了方便计算,将用户名保存到uv中。
往一个set中添加页面 page1 的uv,用户user1访问一次该页面
user2访问一次该页面
user1再次访问一次该页面
最后获取 page1的uv值

    @Test
    public void setTest(){
        Jedis jedis = jedisPool.getResource();

        // 求uv就是求独立用户有多少个
        // 往一个set中添加页面 page1 的uv,用户user1访问一次该页面
        jedis.sadd("uv","user1");

        // user2访问一次该页面
        jedis.sadd("uv","user2");

        // user1再次访问一次该页面
        jedis.sadd("uv","user1");

        // 最后获取 page1的uv值
        System.out.println("uv:"+jedis.scard("uv"));

        jedis.close();
    }
  • 计算uv主要是去重
  • 将来所有的一些要求高效率去重的业务场景,都可以使用set操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小刘新鲜事儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值