redis in action 一些基本操作 ZSET类型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010953706/article/details/79954919
import java.util.HashMap;
import java.util.Map;

import redis.clients.jedis.Jedis;

public class SortSetType {
    public static void main(String[] args) {
        LinkRedis linkRedis = LinkRedis.getLinkPedis();
        Jedis jedis = linkRedis.getJedis();
        // Redis sorted
        // set的内部使用HashMap和跳跃表(SkipList)来保证数据的存储和有序,HashMap里放的是成员到score的映射,而跳跃表里存放的是所有的成员,排序依据是HashMap里存的score,使用跳跃表的结构可以获得比较高的查找效率,并且在实现上比较简单

        // zadd -- 向zset中添加元素member,score 用于排序,如果元素存在,则更新其顺序,返回0代 表没添加成功
        // Long zadd(String key, double score, String member)
        // Long zadd(String key, double score, String member, ZAddParams params)
        // Long zadd(String key, Map<String,Double> scoreMembers)
        // Long zadd(String key, Map<String,Double> scoreMembers, ZAddParams
        // params)

        Map<String, Double> map = new HashMap<String, Double>();
        map.put("a", 1.0);
        map.put("b", 2.0);
        map.put("c", 3.0);
        map.put("d", 4.0);
        System.out.println(jedis.zadd("zset", map));

        // zrange -- 取出集合中的元素
        // Set<String> zrange(String key, long start, long end)
        // Set<String> zrangeByLex(String key, String min, String max)
        // Set<String> zrangeByLex(String key, String min, String max, int
        // offset, int count)
        // Set<String> zrangeByScore(String key, double min, double max)
        // Set<String> zrangeByScore(String key, double min, double max, int
        // offset, int count)
        // Set<String> zrangeByScore(String key, String min, String max)
        // Set<String> zrangeByScore(String key, String min, String max, int
        // offset, int count)
        // Set<Tuple> zrangeByScoreWithScores(String key, double min, double
        // max)
        // Set<Tuple> zrangeByScoreWithScores(String key, double min, double
        // max, int offset, int count)
        // Set<Tuple> zrangeByScoreWithScores(String key, String min, String
        // max)
        // Set<Tuple> zrangeByScoreWithScores(String key, String min, String
        // max, int offset, int count)
        // Set<Tuple> zrangeWithScores(String key, long start, long end)
        System.out.println(jedis.zrange("zset", 0, -1));
        System.out.println(jedis.zrangeWithScores("zset", 0, -1));

        // zrem -- 删除名称为key的zset中的元素member
        // Long zrem(String key, String... members)
        // Long zremrangeByLex(String key, String min, String max)
        // Long zremrangeByRank(String key, long start, long end)
        // Long zremrangeByScore(String key, double start, double end)
        // Long zremrangeByScore(String key, String start, String end)
        System.out.println(jedis.zrem("zset", "a"));

        // zincrby -- 修改元素的排序,如果元素不存在则添加该元素,且排序的score值为增加值
        // Double zincrby(String key, double score, String member)
        // Double zincrby(String key, double score, String member, ZIncrByParams
        // params)
        System.out.println(jedis.zincrby("zset", 5.0, "b"));
        System.out.println(jedis.zrange("zset", 0, -1));

        // zrank -- 返回元素在集合中的排序位置,就是索引值
        // Long zrank(String key, String member)
        System.out.println(jedis.zrank("zset", "b"));

        // zrevrank -- 返回从大到小的排序索引值,就是逆序位置
        // Long zrevrank(String key, String member)
        System.out.println(jedis.zrevrank("zset", "b"));

        // zrevrange -- 返回集合中从大到小排序(降序)的,索引start到end的所有元素
        // Set<String> zrevrange(String key, long start, long end)
        // Set<String> zrevrangeByLex(String key, String max, String min)
        // Set<String> zrevrangeByLex(String key, String max, String min, int
        // offset, int count)
        // Set<String> zrevrangeByScore(String key, double max, double min)
        // Set<String> zrevrangeByScore(String key, double max, double min, int
        // offset, int count)
        // Set<String> zrevrangeByScore(String key, String max, String min)
        // Set<String> zrevrangeByScore(String key, String max, String min, int
        // offset, int count)
        // Set<Tuple> zrevrangeByScoreWithScores(String key, double max, double
        // min)
        // Set<Tuple> zrevrangeByScoreWithScores(String key, double max, double
        // min, int offset, int count)
        // Set<Tuple> zrevrangeByScoreWithScores(String key, String max, String
        // min)
        // Set<Tuple> zrevrangeByScoreWithScores(String key, String max, String
        // min, int offset, int count)
        // Set<Tuple> zrevrangeWithScores(String key, long start, long end)
        System.out.println(jedis.zrevrange("zset", 0, -1));

        // zcount -- 返回集合中给定区间的数量
        // Long zcount(String key, double min, double max)
        // Long zcount(String key, String min, String max)
        System.out.println(jedis.zcount("zset", 0, 3));

        // zcard -- 返回集合中所有元素的个数
        // Long zcard(String key)
        System.out.println(jedis.zcard("zset"));

        System.out.println(jedis.del("zset"));
        linkRedis.close();
    }

}
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页