redis 有序集合(set),无需集合(zset)

1.set(无序集合)
无序集合
每个元素都是string
元素的唯一性,不能重复
没有修改操作

1.增加
  sadd key value1 value2 value3...

2.获取
  smembers key

3.删除(删除一个或多个)
  srem key value value1 value2...

2.zset(有序集合)
有序集合
每个元素都是string
元素的唯一性,不能重复
每个元素都关联一个duoble类型的score,表示权重,通过权重将元素从小到大排列
没有修改操作
1.增加
  zadd key score1 value1 score2 value2 score3 value3 (score表示权重)

2.获取

  zrange key 0 -1

获取权值范围内的元素
  zrangebyscore key startscore stopscore

查看指定元素的权重值
  zscore key value

3.删除
  zrem key value1 value2 value3 ...
  删除指定权重范围内的元素
    zremrangebyscore key min max

原文地址:https://www.cnblogs.com/jum-bolg/p/11306490.html

时间: 2024-10-07 10:43:47

redis 有序集合(set),无需集合(zset)的相关文章

redis 有序集合(zset)函数

redis 有序集合(zset)函数 zAdd 命令/方法/函数 Adds the specified member with a given score to the sorted set stored at key. 增加一个或多个元素,如果该元素已经存在,更新它的socre值 虽然有序集合有序,但它也是集合,不能重复元素,添加重复元素只会 更新原有元素的score值 Parameters key score : double value: string Return value Long

Redis 有序集合(sorted set)

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合中的成员进行从小到大的排序. 有序集合的成员是唯一的,但分数(score)却可以重复. 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1). 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员). 实例 redis 127.0.0.1:6379> ZADD w3ckey 1 r

利用Redis有序集合开发普适的排行榜功能

作者:zhanhailiang 日期:2014-12-02 本文将讲解如何基本Redis Sorted Set实现排行榜功能? 首先,请参见Redis数据类型:http://redis.cn/topics/data-types.html 如上所见,Redis有序集合非常适用于有序不重复数据的存储,例如游戏开发中无处不在的排行榜,如等级排行榜,经验排行榜,积分排行榜,历史筹码排行榜等.如果沿用传统的方法,一般是通过后端的定时任务去跑数据来生成排行榜数据,这种方法一方面无法满足产品对功能实时性的要求

Redis有序集合

Redis有序集合类似Redis集合存储在设定值唯一性.不同的是,一个有序集合的每个成员带有分数,用于以便采取有序set命令,从最小的到最大的分数有关. Redis 有序set添加,删除和测试中的O(1)的存在成员(固定时间,无论里面包含的元素集合的数量).列表的最大长度为232- 1元素(4294967295,超过4十亿每个元素的集合). 例子 redis 127.0.0.1:6379> ZADD tutorials 1 redis (integer) 1 redis 127.0.0.1:63

学习笔记-Redis设计与实现-整数集合

整数集合(intset)是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素不多时,Redis就会使用整数集合作为集合键的底层实现. 6.1 整数集合的实现 contents数组时整数集合的底层实现:整数集合的每个元素都是contents数组的一个数组项(item),各个项在数组中按值的大小从小到大有序地排列, 并且数组中不包含任何重复项. length属性记录了整数集合包含地元素数量,也即是contents数组的长度. contents数组的真正类型取决于encoding属性

Redis学习之intset整数集合源码分析

1.整数集合:整数的集合,升序排序,无重复元素 2.整数集合intset是集合键的底层实现之一,当一个集合只包含整数值的元素,并且这个集合的元素数量不多时,redis会使用整数集合作为集合键的底层实现 3.intset可通过属性自定义编码方式(int16_t/int32_t/int64_t) 4.当往inset插入新元素时,如果新元素的类型比inset的原编码类型长,那么要先对inset进行"升级"操作 5.升级操作:(不可逆操作) 1)根据新元素的类型,扩展intset底层数组的空间

Redis命令学习-Set(集合)

1. SADD SADD key member[member ...]:将一个或者多个member计入集合key中去,已经存在集合中的member将会被忽略.计入key不存在,则会创建一个包含member元素的集合.当key不是集合时,返回一个错误. ?返回值:被添加到集合中的元素的个数. 127.0.0.1:6379> SADD bbs "csdn.com" (integer) 1 127.0.0.1:6379> SADD bbs "redis.com"

Redis如何存储对象与集合示例详解

前言 大家都知道在项目中,缓存以及mq消息队列可以说是不可或缺的2个重要技术.前者主要是为了减轻数据库压力,大幅度提升性能.后者主要是为了提高用户的体验度,我理解的是再后端做的一个ajax请求(异步),并且像ribbmitmq等消息队列有重试机制等功能. 这里主要讲redis/303688.html">redis如何把对象,集合存入,并且取出.下面话不多说了,来一起看看详细的介绍吧. 1.在启动类上加入如下代码 private Jedis jedis;private JedisPoolCo

JAVASE02-Unit04: 集合框架 、 集合操作 —— 线性表

Unit04: 集合框架 . 集合操作 -- 线性表 操作集合元素相关方法 package day04; import java.util.ArrayList; import java.util.Collection; import day02.Point; /** * 操作集合元素相关方法 * @author adminitartor * */ public class Collection_Remove { public static void main(String[] args) { C

Redis 有序聚合实现排行榜功能

排行榜功能是一个很普遍的需求.使用 Redis 中有序集合的特性来实现排行榜是又好又快的选择.Redis有序集合非常适用于有序不重复数据的存储 一般排行榜都是有实效性的,比如“用户积分榜”.如果没有实效性一直按照总榜来排,可能榜首总是几个老用户,对于新用户来说,那真是太令人沮丧了. 首先,来个“今日积分榜”吧,排序规则是今日用户新增积分从多到少. 那么用户增加积分时,都操作一下记录当天积分增加的有序集合.假设今天是 2015 年 04 月 01 日,UID 为 1 的用户因为某个操作,增加了 5