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操作