我刚接触Redis,正在尝试缓存一些数据并比较内存使用/性能与其他选项(如Memcached)的差异。我使用IRedisClient的ServiceStack.Redis客户端库。
我已经测试了Redis,25000个键值对象占用大约250MB内存,并生成一个100MB的dump.rdb文件。我需要缓存更多数据,并希望尽可能地减少内存消耗。我的猜测是每个缓存项的文本(JSON blob)大小约为4k,但如果我的基本数学正确,每个项目至少从内存占用的角度来看占用大约10k的Redis内存。转储大小和内存大小之间的巨大差异有点令人震惊。
我现在也在64位虚拟机上运行,我知道它浪费了比32位更多的空间,所以我也会考虑这个问题。看起来Redis需要为每个指针(每个键值缓存?)使用2倍的内存。这是否是2.5倍磁盘:内存比率的原因?
我知道我可以在我的代码中处理Redis中数据的压缩/解压缩,但是我很好奇是否有一些方法可以配置客户端库来执行类似于StreamExtensions的操作。
使用模式准备就绪,写入不频繁,或批量缓存刷新写入。
无论如何,寻求任何关于如何获得更多缓存项目以达到给定内存量的建议。
我已经测试了Redis,25000个键值对象占用大约250MB内存,并生成一个100MB的dump.rdb文件。我需要缓存更多数据,并希望尽可能地减少内存消耗。我的猜测是每个缓存项的文本(JSON blob)大小约为4k,但如果我的基本数学正确,每个项目至少从内存占用的角度来看占用大约10k的Redis内存。转储大小和内存大小之间的巨大差异有点令人震惊。
我现在也在64位虚拟机上运行,我知道它浪费了比32位更多的空间,所以我也会考虑这个问题。看起来Redis需要为每个指针(每个键值缓存?)使用2倍的内存。这是否是2.5倍磁盘:内存比率的原因?
我知道我可以在我的代码中处理Redis中数据的压缩/解压缩,但是我很好奇是否有一些方法可以配置客户端库来执行类似于StreamExtensions的操作。
使用模式准备就绪,写入不频繁,或批量缓存刷新写入。
无论如何,寻求任何关于如何获得更多缓存项目以达到给定内存量的建议。