草庐IT

data-structures - 具有一个 ZSET 的 Redis GEORADIUS 与许多特定大小的 ZSET

什么会更快,一个带有地理数据的大ZSET,我将在其中使用GEORADIUS查询100米半径或很多ZSET,每个ZSET负责覆盖整个世界的100mX100m正方形?并以这100m的正方形命名,例如:left_corner1_49_2440000_28_5010000left_corner2_49_2450000_28_5010000.......并且将所有100米都放在组内的右侧和底部。因此,在搜索最近点时,我将省略gps中的冗余数字,例如:49.2440408,28.5011694将变为49.2440000、28.5010000这样我就可以知道ZSETS的名称,只需以100米的精度获取

redis - 有什么方法可以使用字符串作为 Redis 排序集 (zset) 中的分数?

或者也许问题应该是:将字符串表示为数字的最佳方式是什么,以便对它们的数字表示进行排序会得到与按字符串排序相同的结果?我设计了一种方法,可以对每个字符串最多9个字符进行排序,但似乎应该有更好的方法。事先,我认为使用Redis的字典顺序命令行不通。(请参阅以下示例。)示例:假设我想对链接到某个ID的所有名称进行预排序,以便我可以使用ZINTERSTORE快速获取基于名称的ID有序列表(无需使用redis的SORT命令)。理想情况下,我会将ID作为zset的成员,每个名称的数字表示将是zset的分数。这有意义吗?还是我做错了? 最佳答案

performance - 在 Redis 中创建中型到大型列表/集合/zset/哈希的最有效方法是什么?

使用redis,有许多命令可以检索整个数据结构(LRANGE用于列表,SMEMBERS用于集合,ZRANGE用于排序集合,HGETALL用于散列)。只有哈希有一个方法(HMSET)用一个命令插入多个项目。我见过的所有示例都显示一次只向列表(通过RPUSH或LPUSH)或集合(通过SADD/ZADD)添加一个项目。我想解决的更具体的问题是创建包含数据库ID的列表和排序集,这些列表对每个用户都是唯一的,包含几百到几千个ID。它们通常是从数据库查询中收集的,在内存中稍微处理一下,然后存储在redis中,用于分页(列表)或进行基于集合的操作以检索子集(集合和排序集合)。目前,我正在遍历列表并为

redis - Redis 数据库中的 ZSET 是什么?

什么是redis数据库中的zset。我有一个包含一些数据的redis数据库。为了得到值KEYS*apple*1)"compleet-index:products:apple"2)"compleet-index:brands:apple"拿到key之后GETcompleet-index:productos:apple我得到了回应(error)WRONGTYPEOperationagainstakeyholdingthewrongkindofvalue我知道类型TYPEcompleet-index:productos:iphonezset当我做DUMPcompleet-index:prod

延时任务-基于redis zset的完整实现

所谓的延时任务给大家举个例子:你买了一张火车票,必须在30分钟之内付款,否则该订单被自动取消。订单30分钟不付款自动取消,这个任务就是一个延时任务。我之前已经写过2篇关于延时任务的文章:《完整实现-通过DelayQueue实现延时任务》《延时任务(二)-基于netty时间轮算法实战》这两种方法都有一个缺点:都是基于单体应用的内存的方式运行延时任务的,一旦出现单点故障,可能出现延时任务数据的丢失。所以此篇文章给大家介绍实现延时任务的第三种方式,结合rediszset实现延时任务,可以解决单点故障的问题。给出实现原理、完整实现代码,以及这种实现方式的优缺点。一、实现原理首先来介绍一下实现原理,我们

延时任务-基于redis zset的完整实现

所谓的延时任务给大家举个例子:你买了一张火车票,必须在30分钟之内付款,否则该订单被自动取消。订单30分钟不付款自动取消,这个任务就是一个延时任务。我之前已经写过2篇关于延时任务的文章:《完整实现-通过DelayQueue实现延时任务》《延时任务(二)-基于netty时间轮算法实战》这两种方法都有一个缺点:都是基于单体应用的内存的方式运行延时任务的,一旦出现单点故障,可能出现延时任务数据的丢失。所以此篇文章给大家介绍实现延时任务的第三种方式,结合rediszset实现延时任务,可以解决单点故障的问题。给出实现原理、完整实现代码,以及这种实现方式的优缺点。一、实现原理首先来介绍一下实现原理,我们

Redis常用指令之string、list、set、zset、hash

Redis之五大类型常用指令redis的一些小知识redis服务器端口默认是6379在编译完成后的bin目录下启动服务端:redis-server客户端连接操作:redis-cli-hlocalhost-p6379,如果是一台机器可以省略后面的:redis-cli(备注:可以复制redis解压目录下的redis-conf文件到另一个文件夹,然后可以修改端口号port7000这时你再次启动服务还是6379的端口号,读取的还是源码目录里的redis-conf文件,要想在启动的时候读取我们修改后的配置文件,需要修改启动命令的格式:redis-server复制过来修改后的配置文件路径,比如:redis

Redis常用指令之string、list、set、zset、hash

Redis之五大类型常用指令redis的一些小知识redis服务器端口默认是6379在编译完成后的bin目录下启动服务端:redis-server客户端连接操作:redis-cli-hlocalhost-p6379,如果是一台机器可以省略后面的:redis-cli(备注:可以复制redis解压目录下的redis-conf文件到另一个文件夹,然后可以修改端口号port7000这时你再次启动服务还是6379的端口号,读取的还是源码目录里的redis-conf文件,要想在启动的时候读取我们修改后的配置文件,需要修改启动命令的格式:redis-server复制过来修改后的配置文件路径,比如:redis

Redis 原理 - Sorted Set (ZSet)

SortedSet(ZSet)数据结构SortedSet(ZSet),即有序集合,底层使用压缩列表(ziplist)或者跳跃表(skiplist)使用压缩列表(ziplist)当同时满足下面两个条件时,使用ziplist存储数据元素个数少于128个(zset-max-ziplist-entries:128)每个元素长度小于64字节(zset-max-ziplist-value:64)不满足上面的条件,使用跳跃表(skiplist)zset在转为skiplist之后,即使元素被逐渐删除,也不会重新转为ziplist有趣的命名:SortedSet为啥不缩写为SSet?GitHub有人提问Z代表XY

Redis 原理 - Sorted Set (ZSet)

SortedSet(ZSet)数据结构SortedSet(ZSet),即有序集合,底层使用压缩列表(ziplist)或者跳跃表(skiplist)使用压缩列表(ziplist)当同时满足下面两个条件时,使用ziplist存储数据元素个数少于128个(zset-max-ziplist-entries:128)每个元素长度小于64字节(zset-max-ziplist-value:64)不满足上面的条件,使用跳跃表(skiplist)zset在转为skiplist之后,即使元素被逐渐删除,也不会重新转为ziplist有趣的命名:SortedSet为啥不缩写为SSet?GitHub有人提问Z代表XY