021_Jedis的ZSet数据类型

1. 新建一个名为JedisZSet的Java项目, 拷入相关jar包, 并添加到build path

2. 向有序集合添加一个或多个成员

2.1. 代码

2.2. 运行效果

3. 通过索引区间返回有序集合指定区间内的成员

3.1. 代码

3.2. 运行效果

4. 通过索引区间返回有序集合指定区间内的成员(分数从高到低)

4.1. 代码

4.2. 运行效果

5. 获取有序集合的成员数

5.1. 代码

5.2. 运行效果

6. 返回有序集合中指定成员的索引

6.1. 代码

6.2. 运行效果

7. 返回有序集中成员的分数值

7.1. 代码

7.2. 运行效果

8. 返回有序集合中指定成员的排名(从大到小)

8.1. 代码

8.2. 运行效果

9. 计算在有序集合中指定区间分数的成员数

9.1. 代码

9.2. 运行效果

10. 有序集合中对指定成员的分数加上增量increment

10.1. 代码

10.2. 运行效果

11. 计算给定的一个或多个有序集的交集并将结果存储在新的有序集合中

11.1. 代码

11.2. 运行效果

12. 计算给定的一个或多个有序集的并集并将结果存储在新有序集合中

12.1. 代码

12.2. 运行效果

13. 移除有序集合中的一个或多个成员

13.1. 代码

13.2. 运行效果

14. 移除有序集合中给定的排名区间的所有成员

14.1. 代码

14.2. 运行效果

15. 移除有序集合中给定的分数区间的所有成员

15.1. 代码

15.2. 运行效果

16. 完整代码

16.1. RedisZSet.java

package com.redis.zset;

import java.util.HashMap;
import java.util.Map;
import redis.clients.jedis.Jedis;

/**
 * zset有序集合
 */
public class RedisZSet {
	public static void main(String[] args) {
		jedisZremrangeByScore();
	}

	/**
	 * Jedis向有序集合添加一个或多个成员
	 */
	public static void jedisZadd() {
		Jedis jedis = new Jedis("192.168.25.138", 6379);
		jedis.auth("lyw123456");
		System.out.println("向student集合中添加了" + jedis.zadd("student", 1, "1001") + "个成员");
		Map<String, Double> map = new HashMap<String, Double>();
		map.put("xiaohong", 2D);
		map.put("16", 3D);
		map.put("女", 4D);
		System.out.println("向student集合中添加了" + jedis.zadd("student", map) + "个成员");
		System.out.println("向user集合中添加了" + jedis.zadd("user", 1, "1002") + "个成员");
		map.clear();
		map.put("xiaolan", 2D);
		map.put("16", 3D);
		map.put("女", 4D);
		System.out.println("向user集合中添加了" + jedis.zadd("user", map) + "个成员");
		jedis.close();
	}

	/**
	 * Jedis通过索引区间返回有序集合指定区间内的成员
	 */
	public static void jedisZrange() {
		Jedis jedis = new Jedis("192.168.25.138", 6379);
		jedis.auth("lyw123456");
		System.out.println(jedis.zrange("student", 0, -1));
		System.out.println(jedis.zrangeWithScores("student", 0, -1));
		jedis.close();
	}
	
	/**
	 * Jedis通过索引区间返回有序集合指定区间内的成员(分数从高到低)
	 */
	public static void jedisZrevrange() {
		Jedis jedis = new Jedis("192.168.25.138", 6379);
		jedis.auth("lyw123456");
		System.out.println(jedis.zrevrange("student", 0, -1));
		System.out.println(jedis.zrevrangeWithScores("student", 0, -1));
		jedis.close();
	}
	
	/**
	 * Jedis获取有序集合的成员数
	 */
	public static void jedisZcard() {
		Jedis jedis = new Jedis("192.168.25.138", 6379);
		jedis.auth("lyw123456");
		System.out.println("student集合中有" + jedis.zcard("student") + "个成员");
		System.out.println("user集合中有" + jedis.zcard("user") + "个成员");
		jedis.close();
	}
	
	/**
	 * Jedis返回有序集合中指定成员的索引
	 */
	public static void jedisZrank() {
		Jedis jedis = new Jedis("192.168.25.138", 6379);
		jedis.auth("lyw123456");
		System.out.println("student集合中1001的索引: " + jedis.zrank("student", "1001"));
		System.out.println("student集合中16的索引: " + jedis.zrank("student", "16"));
		jedis.close();
	}
	
	/**
	 * Jedis返回有序集中成员的分数值
	 */
	public static void jedisZscore() {
		Jedis jedis = new Jedis("192.168.25.138", 6379);
		jedis.auth("lyw123456");
		System.out.println("student集合中1001的分数: " + jedis.zscore("student", "1001"));
		System.out.println("student集合中16的分数: " + jedis.zscore("student", "16"));
		jedis.close();
	}
	
	/**
	 * Jedis返回有序集合中指定成员的排名(从大到小)
	 */
	public static void jedisZrevrank() {
		Jedis jedis = new Jedis("192.168.25.138", 6379);
		jedis.auth("lyw123456");
		System.out.println(jedis.zrevrange("student", 0, -1));
		System.out.println("student集合中16的索引: " + jedis.zrevrank("student", "16"));
		jedis.close();
	}
	
	/**
	 * Jedis计算在有序集合中指定区间分数的成员数
	 */
	public static void jedisZcount() {
		Jedis jedis = new Jedis("192.168.25.138", 6379);
		jedis.auth("lyw123456");
		System.out.println("student集合1到3分数之间, 成员个数" + jedis.zcount("student", 1, 3));
		System.out.println("user集合2到4分数之间, 成员个数" + jedis.zcount("user", 2, 4));
		jedis.close();
	}
	
	/**
	 * Jedis有序集合中对指定成员的分数加上增量increment
	 */
	public static void jedisZincrby() {
		Jedis jedis = new Jedis("192.168.25.138", 6379);
		jedis.auth("lyw123456");
		System.out.println("student集合成员: " + jedis.zrevrangeWithScores("student", 0, -1));
		System.out.println("student集合1001成员分数: " + jedis.zincrby("student", 10, "1001"));
		System.out.println("sxxx集合lisi成员分数: " + jedis.zincrby("sxxx", 10, "lisi"));
		System.out.println("sxxx集合成员: " + jedis.zrevrangeWithScores("sxxx", 0, -1));
		System.out.println("student集合188.5成员分数: " + jedis.zincrby("student", 10, "188.5"));
		System.out.println("student集合成员: " + jedis.zrevrangeWithScores("student", 0, -1));
		jedis.close();
	}
	
	/**
	 * Jedis计算给定的一个或多个有序集的交集并将结果存储在新的有序集合中
	 */
	public static void jedisZinterstore() {
		Jedis jedis = new Jedis("192.168.25.138", 6379);
		jedis.auth("lyw123456");
		System.out.println("student集合和user集合的交集成员个数: " + jedis.zinterstore("suinter", "student", "user"));
		System.out.println("student集合和user集合的交集: " + jedis.zrangeWithScores("suinter", 0, -1));
		jedis.close();
	}
	
	/**
	 * Jedis计算给定的一个或多个有序集的并集并将结果存储在新有序集合中
	 */
	public static void jedisZunionstore() {
		Jedis jedis = new Jedis("192.168.25.138", 6379);
		jedis.auth("lyw123456");
		System.out.println("student集合和user集合的并集成员个数: " + jedis.zunionstore("suunion", "student", "user"));
		System.out.println("student集合和user集合的并集: " + jedis.zrangeWithScores("suunion", 0, -1));
		jedis.close();
	}
	
	/**
	 * Jedis移除有序集合中的一个或多个成员
	 */
	public static void jedisZrem() {
		Jedis jedis = new Jedis("192.168.25.138", 6379);
		jedis.auth("lyw123456");
		System.out.println("从suunion集合移除" + jedis.zrem("suunion", "1001") + "个成员");
		System.out.println("从suunion集合移除" + jedis.zrem("suunion", "xiaolan", "188.5") + "个成员");
		jedis.close();
	}
	
	/**
	 * Jedis移除有序集合中给定的排名区间的所有成员
	 */
	public static void jedisZremrangeByRank() {
		Jedis jedis = new Jedis("192.168.25.138", 6379);
		jedis.auth("lyw123456");
		System.out.println("suunion集合成员: " + jedis.zrange("suunion", 0, -1));
		System.out.println("从suunion集合移除" + jedis.zremrangeByRank("suunion", 0, 1) + "个成员, 它们的下标是0到1");
		System.out.println("suunion集合成员: " + jedis.zrange("suunion", 0, -1));
		jedis.close();
	}
	
	/**
	 * Jedis移除有序集合中给定的分数区间的所有成员
	 */
	public static void jedisZremrangeByScore() {
		Jedis jedis = new Jedis("192.168.25.138", 6379);
		jedis.auth("lyw123456");
		System.out.println("user集合成员: " + jedis.zrangeWithScores("user", 0, -1));
		System.out.println("从user集合移除" + jedis.zremrangeByScore("user", 1, 3) + "个成员, 它们的分数是1到3");
		System.out.println("user集合成员: " + jedis.zrangeWithScores("user", 0, -1));
		jedis.close();
	}
}

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值