社区
C++ 语言
帖子详情
key大概约6百万, 请问使用哪种hash结构?
lidengdeng
2011-12-03 07:36:58
发现使用map结构时, 当记录条数比较多时(key为字符串string型, value为int型), 例如600万, 占的内存量非常大. 32G内存机器根本就不够跑.
请问当记录比较大时, 哪种hash结构比较适合, 对内存需求不是很大? 谢谢
...全文
83
4
打赏
收藏
key大概约6百万, 请问使用哪种hash结构?
发现使用map结构时, 当记录条数比较多时(key为字符串string型, value为int型), 例如600万, 占的内存量非常大. 32G内存机器根本就不够跑. 请问当记录比较大时, 哪种hash结构比较适合, 对内存需求不是很大? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lucky-lucky
2011-12-03
打赏
举报
回复
对string做个转换是个不错的想法,可以试一下CRC32
或者采用多级索引,
600万个数据,比如将主键a开头的放在一个map里面,b开头的放在一个map里面,
要的时候先查找第一个字符是什么,如果是a的话那就只加载a所对应的map了
acdbxzyw
2011-12-03
打赏
举报
回复
数据库比较合适
ryfdizuo
2011-12-03
打赏
举报
回复
记错了,是编程之美上的一道题。
ryfdizuo
2011-12-03
打赏
举报
回复
可以把字符串编码成long long。然后就是long long 到int的映射
算法导论上有一种思路是abc => c + b*26 + a*26*26
也可以参考这里:
http://topic.csdn.net/u/20110729/10/dbf05cb5-93c5-4e4f-9b23-7772418bb94e.html?12765
Redis大
key
多
key
拆分方案
使用
bitmap或布隆过滤器的场景,往往是数据量极大的情况,在这种情况下,Bitmap和布隆过滤器
使用
空间也比较大,比如用于公司userid匹配的布隆过滤器,就需要512MB的大小,这对redis来说是绝对的大value了。 一:
key
本身就有很强的相关性,比如多个
key
代表一个对象,每个
key
是对象的一个属性,这种可直接按照特定对象的特征来设置一个新
Key
——
Hash
结构
, 原先的
key
则作为这个新
Hash
的field。这样算出三个
key
的桶分别是 1 , 2, 2。
【学习笔记】Redis的geo
hash
数据
结构
介绍
geo
hash
介绍 ⾃Redis 3.2开始,Redis基于geo
hash
和有序集合提供了地理位置相关功能。Redis Geo模块包含了以下6个命令: ▶GEOADD: 将给定的位置对象(纬度、经度、名字)添加到指定的
key
; ▶GEOPOS: 从
key
⾥⾯返回所有给定位置对象的位置(经度和纬度); ▶GEODIST: 返回两个给定位置之间的距离; ▶GEO
HASH
: 返回⼀个或多个位置对象的Geo
hash
表⽰; ▶GEORADIUS: 以给定的经纬度为中⼼,返回⽬标集合中与中⼼的距离不超过给定最⼤距离的所
Redis高级数据
结构
——Geo
Hash
自Redis 3.2开始,Redis基于geo
hash
和有序集合提供了地理位置相关功能。Redis Geo模块包含了以下6个命令:GEOADD、GEOPOS、GEODIST、GEO
HASH
、GEORADIUS、GEORADIUSBYMEMBER。
数据
结构
之哈希表(散列表)
本文附带部分leetcode的例题和伪代码 哈希表 哈希表(
Hash
table,也叫散列表),是根据关键码值(
Key
value)而直接进行访问的数据
结构
也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度 采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为散列表或哈希表(
Hash
table) 哈希表
hash
table(
key
,value) 就是把
Key
通过一个固定的算法函数(哈希函数)转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,
【进阶篇】2.3 三分钟了解Redis地理位置数据
结构
Geo
Hash
随着移动互联网的普及,越来越多的应用需要对地理位置信息进行存储和查询,如LBS(Location-Based Service)服务、附近的人功能、地图搜索等。为了满足这些应用的需求,Redis提供了一种地理位置数据
结构
,称为Geo
Hash
,可以存储和查询地理位置信息。本文将对Redis地理位置数据
结构
进行详细介绍。Redis地理位置数据
结构
是一种基于Geo
Hash
算法实现的数据
结构
,用于存储和查询地理位置信息。
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章