Cómo Zset opera Redis: basado en Jedis, edición de Java

1. Concepto Zset

Conjunto ordenado Zset (conjunto ordenado):
1. Un conjunto ordenado también es una colección de elementos de tipo cadena como un conjunto, y no se permiten miembros duplicados, es decir, ¡los elementos son únicos!
2. Cada elemento está asociado a una puntuación de tipo doble (score), y redis utiliza estas puntuaciones (score) para ordenar los elementos de la colección.
3. Los elementos de un conjunto ordenado son únicos, pero la partitura (puntuación) puede repetirse.
4. El número máximo de elementos en una colección es 2^32 - 1 (4294967295, cada colección puede almacenar más de 4 mil millones de elementos).

2. Sintaxis Zset

1. Tecla Zadd puntuación 1 miembro 1 [puntuación 2 miembro 2] # 向有序集合添加一个或多个成员,或者更新已存在成员的分数
2. Tecla Zrange inicio parada [con puntuaciones] # 通过索引区间内返回有序集合指定区间内的成员

  • start y stop representan el subíndice de index respectivamente.
  • El resultado de withscores trae el valor de la puntuación.

3. Clave Zcard # 获取有序集合的成员数
4. Miembro clave Zrem[miembro…] #移除有序集合中的一个或多个成员
5. Clave Zcount mín. máx. # 计算在有序集合中指定分数区间的成员数
6. Clave Zincrby miembro de incremento # 有序集合中指定成员的分数加上增量 increment
7. Clave Zrangebylex mín. máx. [LIMITE el recuento de compensación] #通过字典区间返回有序集合的成员
8. Miembro clave Zrank # 返回有序集中指定成员的排名。** 其中有序集成员按分数值递增(从小到大)顺序排列。
9. Miembro clave Zrevrank [con puntuaciones] # 返回有序集中指定成员的排名。其中有序集成员按分数值递减(从大到小)排序。 效果和Zrevrangebyscore一样
10 Zrangebyscore key min max [con puntuaciones] # 通过分数按照递增(从小到大)次序排列返回有序集合指定区间内的成员

  • min max representa el valor de la puntuación y Zrange representa el subíndice
  • min max puede usarse con intervalos cerrados [menor o igual o mayor o igual que] e intervalos abiertos (menor o mayor que)

11. Zrevrangebyscore key max min [withscores] # 返回有序集中指定分数区间内的成员,分数从高到低排序

3. Ejemplo de Zset en Jedis

¡Seleccione algunas partes aquí para demostración, y otros comandos se pueden operar al ver el código fuente!


public class TestZset {
    
    
	public static void main(String[] args) {
    
    
		// 创建jedis对象
		Jedis jedis = new Jedis("localhost",6379);  // 如果你是用服务器,localhost改为服务器ip即可
		jedis.auth("12345688"); // 如果redis设置了密码验证,反之,则不需要该代码

		HashMap<String, Double> scoreMap = new HashMap<String, Double>();
		scoreMap.put("xiaoming",70.0);
		scoreMap.put("xiaowang",100.0);
		scoreMap.put("xiaohong",88.0);
		scoreMap.put("xiaoli",60.0);
		scoreMap.put("zhangsan",58.0);
		jedis.zadd("math", scoreMap);
		// 查看scoreMap的形式
		System.out.println("查看scoreMap的形式:"+scoreMap.toString());
		// 0 第0个元素,-1最后一个元素
		System.out.println("返回math全部元素:"+jedis.zrange("math", 0, -1));
		System.out.println("查看key有多少个元素:"+jedis.zcard("math"));
		// 移除 xiaoli 这个元素
		System.out.println("移除xiaoli 这个元素");
		jedis.zrem("math", "xiaoli");
		// -inf 负无穷  inf 正无穷,即从小到大排序
		System.out.println("按照递增顺序,返回math全部的元素(含成绩):"+jedis.zrangeByScoreWithScores("math", "-inf", "inf"));
		System.out.println("统计math集合,成绩在[80,100]之间的元素个数:"+jedis.zcount("math", 80,100 ));
	}
}

Demostración de resultados:inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_44231797/article/details/123644135
Recomendado
Clasificación