请教个redis有序集合的问题 5C

集合元素要有多个值:编号,类型,金额和排序分数。类型和金额如何存储在有序集合中呢?元素key用json,value用排序分数 如何呢?

0

4个回答

key可以用 编号_ 类型 _金额 下划线拼接方式

0

与楼上的思路一致。
key使用json格式不靠谱,因为同一个对象使用不同的json序列化工具得到的结果是不同的,使用json作为key不是一个好思路。

0

redis有序集合包括的元素有,key,score,member。其中key就是redis的键,自定义一个业务相关的就可以;score得分,用来进行排序的,上面的排序分数;member是集合的元素,可以按照上面说的,编号_ 类型 _金额这种格式,也可以用用一个对象,转化为jsonString格式。

0

楼主的意思无非就是怎么把一个对象存到redis中,可以先把对象序列化,然后存到redis中,取的时候在反序列化,就可以得到该对象的所以信息

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
redis有序集合排行榜问题
Redis提供了按score进行排序的有序集合zset,例如我们所有的排行榜内容,都可以实现其目的,但是如果相同分数redis是怎么排序的呢。 1-默认redis的zset是按score排序的,提供了range(start, end),rangeByScore(min,max),rangeWithScores(start, end))等各式各样的排序方式。 2-在score相同的情况下,zse...
Redis有序集合命令ZREVRANGEBYSCORE详解与应用
Redis有序集合命令ZREVRANGEBYSCORE详解与应用 本文是我在redis中文网翻译团队翻译redis命令的相关内容,也是取得翻译团队同意后在CSDN同步发表 redis.cn翻译团队 也欢迎有兴趣和能力的朋友加入! 根据分数排序获取成员列表 ZREVRANGEBYSCORE1 简介ZREVRANGEBYSCORE 返回有序集合中指定分数区间内的成员,分数由高到低排序。
Redis有序集合操作
SortedSet有序集合类似Set集合有序的、去重的元素是字符串类型每个元素都关联着一个浮点数分值(Score),并按照分值从小到大的顺序排列集合中的元素。分值可以相同最多包涵2^32 - 1 元素增加元素ZADD key sorce member [sorce member...] 如果元素已经存在,则使用新的score删除元素ZREM key member [member...] 如果不存在...
《Redis实战》笔记-Redis的有序集合
有序集合和散列一样,都用于存储键值对:有序集合的键被称为成员(member),每个成员都是各不相同的;而有序集合的值则被称为分值(score),分值必须为浮点数。有序集合是Redis里面唯一一个既可以根据成员访问元素(这一点和散列一样),又可以根据分值以及分值的排序顺序来访问元素的结构。图1展示了一个包含两个元素的有序集合示例。 和Redis的其他结构一样,用户可以对有序集合执行添加、移除和...
redis之有序集合
一、概述 有序集合和集合最大的区别在于有序二字,有序集合为每个元素关联一个分数(元素的分数可以相同)。 有序集合类型和列表的共同点 1、二者都是有序的 2、二者都一个获取某一个范围的元素 但是二者也有很大的区别二、命令1、ZADD  key score number [score number ......]  向有序集合加入一个元素和该元素的分数,如果该元素已经存在的话,则是更新该元素的分数,命...
redis之有序集合类型(Zset)——排行榜的实现
原文:https://blog.csdn.net/loophome/article/details/50373202 Redis有序集合和Redis集合类似,是不包含 相同字符串的合集。它们的差别是,每个有序集合 的成员都关联着一个评分,这个评分用于把有序集 合中的成员按最低分到最高分排列。 使用有序集合,你可以非常快地(O(log(N)))完成添加,删除和更新元素的操作。 因为元素是在插入时...
Redis中的排名 有序集合 排名排名相同看时间
笔者在做一个每天一更的功能的时候 , 需要用到 ,每天找到闯关等级最高往下依次数到100个,但是这个100中有序玩家的等级相同的看是时间的早晚,早上榜的先给玩家排在前面。又因为Redis中有序集合的分数排序分数相同的用字典的方式储存,不是时间,所以比较让人脑大。想了很多办法,最后发现还是的在score上做文章,举个例子。玩家的等级最高是50    每天的时间有86400秒      我们让有序集合...
Redis 多命名List命令和Zset有序集合命令的并发原子性
一、Redis-List命令和Zset有序集合命令的并发原子性 这个并发原则处理的过程是要基于当前的key在客户端发生了并发产生了阻塞才会执行,针对某个命令执行时间太长 否者会返回NULL不做处理,多个命令并发操作这个KEY,就可能产生阻塞 db->blocking_keys 字典维护的哈希表,存放客户端阻塞的KEY db->ready_keys 字典维护的哈希表,存放客户端阻...
多个redis有序集合组合如何实现分页
多个redis有序集合组合如何实现分页   需求:现在将不同类别的数据放入不同的redis有序集合key中,查询的时候不区分类别,进行统一的查询。 redis分页实体: import java.io.Serializable; /** * 中间过滤实体 * 〈功能详细描述〉 * * @author 16071761 * @see [相关类/方法](可选) *
Redis有序集合的使用(排序使用案例)
  1,redis添加有序集合数据(模拟用户uid以及分数) $key = 'OOOOOOOOOOOOOOO'; for ($uid = 1;$uid<=20;$uid++){ $this->cache->zAdd($key,mt_rand(0,100),$uid+10); ...
Redis跳表与有序集合实现
笔者博客地址: https://charpty.com 为了大家看整体源码方便,我将加上了完整注释的代码传到了我的github上供大家直接下载: https://github.com/charpty/redis4.0-source-reading 在Redis中提供了有序集合,从它的命令之多就可以知道它的功能是比较强大的,当然实现也是比较复杂的,ZSET底层使用跳表SKIP LIST实现,...
redis 有序集合(sorted set)(redis学习七)
集合命令基本命令入门Zadd 命令Zcard 命令Zcount 命令Zincrby 命令Zinterstore 命令Zlexcount 命令ZrangeZrangebylexZrangebyscoreZrankZrem 命令Zremrangebylex 命令Zremrangebyrank 命令Zremrangebyscore 命令Zrevrange 命令ZrevrangebyscoreZrevra...
redis有序集合实现实时排名
需求:如何快速简单的进行论坛文章浏览次数排名,减少对数据库、后端程序的请求处理等。。。 解决方案:采用redis中的有序集合,针对实时排名的功能 1.根据帖子id,作为value,用zadd(新增)或者zincrby更新(添加) 2.移除指定元素,用zrem 3.用zrevrange(从大到小)或者zrange(从小到大),获取排序后的数据 4.排序后的数据作为查询条件,进行mysql数据查询...
php 利用 redis 有序集合 实现 延时消费 队列 延时队列
简单思路:将使用延时消费的信息存入redis的有序集合中,score 为消费时间,用定时器 根据score 取出符合消费的元素进行(zRangeByScore) #延时消费简单逻辑代码 ############################################################### #生产 $key ='延时消费'; $score = time(...
Redis-07Redis数据结构--有序集合ZSet
文章目录概述Redis 有序集合的部分命令 概述 有序集合和无序集合的命令是接近的,只是在这些命令的基础上,会增加对于排序的操作,这一点在使用的时候需要注。 有些时候 Redis 借助数据区间的表示方法来表示包含或者不包含,比如在数学的区间表示中[2,5 ]表示包含 2,但是不包含 5 的 区间。 Redis 有序集合的部分命令 官网: https://redis.io/commands#sor...
go操作redis的有序集合(zset)
go操作redis的有序集合(zset)package mainimport ( "fmt" "github.com/garyburd/redigo/redis" )func main() { // 连接redis数据库,指定数据库的IP和端口 conn, err := redis.Dial("tcp", "36.99.16.197:6379") if err
redis有序集合(sorted sets)介绍(积分排行榜应用)
一、概述:     Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中。它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。然而需要额外指出的是,尽管Sorted-Sets中的成员必须是唯一的,但是分数(score)却是可以重复的。   
redis如何获取有序集合指定范围的个数
zrevrangebyscore dataSet 100 1 withscores limit 0 10说明: dataSet 是redis的sorted set结构的数据的key 100是dataSet 中数据项分数的最大值 1是dataSet 中数据项分数的最小值 0是表示从0开始,类似mysql:select * from table limit 0, 10 10表示取多少个数据
Redis笔记之有序集合(SortedSet)
有序集合sortedset类似于哈希的键值映射,不过在有序集合中是成员与分值的映射,有序集合可以根据分值进行排序,应用场景有各种排行榜与热度相关的场景 sortedset命令详解:  zadd(zadd key score member) 向有序集合key中添加一个或多个分值以及映射的成员 zrem(zrem key member)  删除有有序集合中的一个或者多个成员 zcard(z...
Redis有序集合对象
Redis有序集合对象 有序集合的底层数据结构类型 答:zset的存储底层实现结构有ziplist和skiplist(跳跃表)两种类型实现。如果使用ziplist(压缩列表)作为底层实现,由于我们存储数据的时候需要输入数据的分值作为排序的依据,所有ziplist使用两个紧挨在一起的压缩列表节点来保存,第一个节点保存元素的值,第二个节点保存元素的分值。例如我们执行了zadd price 9 app...
Redis源码剖析和注释(十三)--- 有序集合类型键实现(t_zset)
有序集合类型键实现1. 有序集合命令Redis有序集合命令如下表所示:Redis 有序集合命令详解 序号 命令及描述 1 ZADD key score1 member1 [score2 member2]: 向有序集合添加一个或多个成员,或者更新已存在成员的分数 2 ZCARD key: 获取有序集合的成员数 3 ZCOUNT key min max:计算在有序集合中指定
【thinkphp5操作redis系列教程】有序集合类型之zRevRange
<?php namespace app\index\controller; use Redis; class Index { public function index() { $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->flu...
Redis 对象:有序集合对象
每种类型的变量至少使用了两种不同的编码 1 五种对象的底层编码: 字符串类型对象:REDIS_ENCODING_INT REDIS_ENCODING_EMBSTRREDIS_ENCODING_RAW 列表类型的对象:REDIS_ENCODING_ZIPLIST REDIS_ENCODING_LINKEDLIST 哈希对象:REDIS_ENCODING_ZIPLIST ...
Redis存储结构之有序集合(Sorted Set)
Redis可排序集合类似于Redis集合,是不重复的字符集合。 不同之处在于,排序集合的每个成员都与分数相关联,这个分数用于按最小分数到最大分数来排序的排序集合。虽然成员是唯一的,但分数值可以重复。  zadd、zrange、zrem、zcard   ZADD ZCARD ZCOUNT ZINCRBY ZRANGE ZRANGEBYSCORE ZRANK ZREM ZREMRANGEBYRAN...
Redis-Redis实战(有序集合)
有序集合是Redis提供的又一种数据类型。与集合相比,很明显它增加了排序功能,除了基本的 新增 删 改 差 判断是否存在等操作外,有序集合还提供了排序、获取TopN、按Range获取等操作。有序集合的底层实现与集合相同,利用散列表来实现,同时,有序集合通过给集合中的每一个元素管理一个分数来实现排序。有序集合的操作zadd key score1 member1 score2 member2.. #添加
Redis命令-有序集合-zscore
  原文 http://redis.io/commands/zscore   简介 Get the score associated with the given member in a sorted set.   获取有序集合中指定成员的分数。   语法 ZSCORE key member   版本 Available since 1.2.0.   自1.2.0...
Redis学习笔记之七:有序集合类型
Redis最后一种类型是有序集合类型ZSet,即排序的Set,但又与Set不同的是,它比Set多一个字段分数(score)用于排序等操作,从这点来看,相当于Java中的TreeMap,但与Java的TreeMap不同的是,TreeMap排序是指定Comparator对象来排序,通过比较Key来排序,最后构成一棵树。而Redis的ZSet在存储结构上类似于Set。     1、设值/取值
【thinkphp5操作redis系列教程】有序集合类型之zAdd,zRange
<?php namespace app\index\controller; use Redis; class Index { public function index() { $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->flu...
redis基本命令之二:集合、有序集合
5 集合类型 5.1 增加/删除元素 Sad key number [number …] Srem key number [number …] Sadd命令用来向集合中增加一个或多个元素,如果键不存在则会自动创建。因此在一个集合中不能有相同的元素,所以如果要加入的元素已经存在于集合中就会忽略这个元素。 5.2 获取集合中的所有元素 smembers k...
redis学习(六) redis有序集合 order set操作命令
redis有序集合 order set操作命令 1 添加元素 zadd [key] [score1] [value1] [score1] [value2] [......] 2 找到指定名次取出数据 zrange [key] [indexStart] [indexEnd]
Redis教程(六) 有序集合(soted set / zset)类型
Redis的键值可以支持数据类型:字符串,列表,散表,集合,有序集合、HyperLogLog,通过选用不同的数据结构,用户可以使用Redis解决各式各样的问题。 有序集合(soted set / zset)类型: 有序集合和集合一样,都可以包含任意数量的、各不相同的元素( element),不同于集合的是,有序集合的每个元素都关联着一个浮点数格式的分值(score),并且有序集合会按照分值,以从小到大的顺序来排列有序集合中的各个元素。虽然有序集合中的每个元素都必须是各不相同的,但元素的分值并没有这一限制,换
redis有序集合orderset操作
无序集合操作 zadd key score1 value1 score2 value2 ... 添加元素,score就是排序的依据 zrange key start stop [withscores] 将集合元素排序后,返回名次[start stop]的元素,默认升序排序 withscores是取出的元素显示scores zrangebyscore key mi
PHP redis有序集合操作【点赞功能】
<?php $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->auth('j2v2Y4g4123'); $plan_id = '1'; //$like_id = '2'; $uid = '6'; //$redis->ZADD("plan:$plan_id:liked", time(), $uid);
PHP操作Redis 有序集(Sorted Set) 的相关命令 (三)
1.zAdd() 增加一个或多个元素,如果该元素已经存在,更新它的socre值虽然有序集合有序,但它也是集合,不能重复元素,添加重复元素只会更新原有元素的score值 $redis->zAdd('key', 1, 'val1'); $redis->zAdd('key', 0, 'val0'); $redis->zAdd('key', 5, 'val5'); $redis->zRange('ke
redis有序集合操作 增删查
redis有序集合操作 增删查 Redis Zadd 命令 Redis Zcard 命令 Redis Zcount 命令 Redis Zincrby 命令 Redis Zinterstore 命令 Redis Zlexcount 命令 Redis Zrange 命令 Redis Zrangebylex 命令 Redis Zrangebyscore 命令 Redis Zrank 命令 Redis Zrem 命令 Redis Zremrangebylex 命令 Redis Zremrangebyrank 命令
Redis从基础命令到实战之有序集合类型(SortedSet)
有序集合类型是Redis五种数据类型中最高级的、也是最复杂的类型。有序集合具有集合类型的特性,在其基础上给每个元素关联了一个分值,或称为权重,操作时既可以在添加元素时指定分值,也可以单独修改集合中某一个元素的分值。使用时可以按分值排序(从低到高或从高到低)并顺序读取全部或某一范围内的元素,或者获得某一分值范围内的元素。利用这一特点,可以很方便的实现排行榜、热门文章等功能。 在本节的实例中...
【thinkphp5操作redis系列教程】有序集合类型之zRem,zDelete
&amp;lt;?php namespace app\index\controller; use Redis; class Index { public function index() { $redis = new Redis(); $redis-&amp;gt;connect('127.0.0.1', 6379); $redis-&amp;gt;flu...
Redis 数据结构 有序集合 (zset)(六)
        特点: 集合内的元素不能重复,但可以排序。它的排序和列表使用索引作为排序依据不同,它给每个元素设置一个分数(score)作为排序依据,有序集合提供了获取指定分数和元素范围查询,计算成员排名等功能。         基本命令:             集合内:                 1、添加成员                         zadd key [n...
Java实现Redis的有序集合(sortedset)命令
配置文件请看上篇Java实现redis  https://blog.csdn.net/qq_41934990/article/details/81612180 下面测试redis字符串类型,注释里面的代码是linux中redis命令 package com.huadian.sortedset; import com.huadian.redisUntil.JedisPoolUntil; im...
redis有序集合中是否存在某个成员
redis命令使用参考网页:http://redis.cn/commands.html有序集合中,redis没有命令直接判断有序集合中是否存在某个成员,自行通过代码实现,示例代码如下:#include <stdio.h> #include <stdlib.h> #include <string.h>#include <hiredis.h>/* ----------------------------