草庐IT

database-caching

全部标签

caching - Redis 可以将磁盘用作 LRU 缓存的一部分吗?

我们需要一个分布式LRU缓存,但它可以同时使用内存和磁盘。我们有一个大型数据集,它永久存储在磁盘上。我们从该数据集创建其他计算数据集,但仅在客户需要时才创建。由于这些辅助数据集源自持久性数据,因此我们永远不需要永久保存这些派生数据。我认为Redis可以将磁盘用作二级LRU缓存,但一直找不到任何指向这一点的文档。Redis似乎只使用磁盘来持久化整个缓存。我设想我们能够使用一堆Redis实例进行横向扩展。如果Redis做不到,是否有其他系统可以做到? 最佳答案 如果数据不适合内存,操作系统可以将其换出到磁盘。这称为虚拟内存。在这里您可以

database - 具有不同密码的不同 Redis 数据库?

在Redis中有一个authenticationfeature也不同databasesarepossible,但是这些功能可以以安全的方式组合吗?从MySQL我知道有一个用户管理,多个用户可以有多个密码,并且只能有一个数据库的权限。出于安全原因,我希望它在Redis中具有相似性,因为目前我可以使用requirepass,但我必须将它添加到每个应用程序中,无论如何它都想连接到redis。(至少有一种方法可以为requirepass使用多个密码吗?我可以用一个应用程序连接到一个数据库,但据我所知,这个应用程序也可以切换到另一个数据库。(我至少可以以某种方式阻止这种转换吗?)出于性能原因,我

caching - 如何在运行时在 Application.conf 中添加条目?

如何在运行时添加单独的redis缓存实例?通过这种方式可以手动添加多个redis缓存实例应用程序配置文件:redis.uri="redis://192.168.3.170:6000"#disabledefaultPlayframeworkcachepluginplay.modules.disabled=["play.api.cache.EhCacheModule"]#enablerediscachemodule#play.modules.enabled=["play.api.cache.redis.RedisCacheModule"]#Multiplerediscachesplay.c

java - 是否可以自定义 Spring Cache 抽象使用的序列化?

我有一个使用Redis进行缓存的Java网络服务。最初我创建了一个直接访问Redisson客户端的CacheService以处理缓存。我最近重构了缓存处理以使用SpringCache抽象,这使代码更清晰并鼓励模块化设计。不幸的是,Spring使用Jackson来序列化/反序列化缓存对象,由于类型信息存储在JSON中,导致缓存值比以前大得多。这导致从缓存读取的响应时间增加到NotAcceptable程度。有什么办法可以自定义Spring序列化和反序列化缓存内容的方式吗?我想用我自己的逻辑替换它,但在文档中看不到任何内容。如果可能的话,我宁愿不必推出自己的AspectJ缓存实现。

caching - 将 Redis 用于 Symfony/var/cache 和/var/logs

我在Homestead中使用PHP7.1运行Symfony3.*实例,最近将缓存和日志目录从我的主文件夹中移开,因为NFS同步变得疯狂并且大大降低了整个安装的性能。我想知道我是否可以通过配置或解决方法以某种方式将通常转到./var/的日志记录和缓存完全分派(dispatch)给Redis? 最佳答案 您可以修改日志记录以将其关闭或关闭-或者选择不将其写入文件,而是将其发送到Redis或其他来源。Monolog可以使用许多可选目标,通常带有支持库和配置。虽然缓存文件并非设计用于写入其他地方。因为它们被写入磁盘,所以它们可以被OpCac

caching - Redis 管道,处理缓存未命中

我正在尝试找出实现Redis流水线的最佳方式。我们使用Redis作为MySQL之上的缓存来存储用户数据、产品列表等。我以此为起点:https://joshtronic.com/2014/06/08/how-to-pipeline-with-phpredis/我的问题是,假设您有一组正确排序的ID。你像这样循环遍历redis管道:$redis=newRedis();//Opensupthepipeline$pipe=$redis->multi(Redis::PIPELINE);//Loopsthroughthedataandperformsactionsforeach($usersas$

database - Cassandra 中的频繁更新表

我正在做一个基于物联网传感器的项目。在这种情况下,每个传感器每分钟都会向服务器发送数据。我预计future最多有10万个传感器。我将每个传感器发送的数据记录在历史表中。但是我有一个实时信息表,其中正在更新每个传感器的最新状态。所以我想每分钟更新一次LiveTable中与每个传感器对应的行。这有什么问题吗?我读到cassandra中频繁的更新操作不好。有没有更好的方法?我已经在我的项目中使用Redis来存储session等。我应该将这个LIVE表移动到Redis吗? 最佳答案 这就是您要查找的内容:https://docs.datas

database - redis数据是存储为sds还是对象?

我正在尝试了解Redis的内部结构。它使用字典的简单实现作为内存中的数据存储。此外,从客户端传输到服务器的数据由其自己序列化RESP协议(protocol)。我至今没有搞清楚的是redis是如何存储数据的。它是否将相应的RESP值存储为simpledynamicstring(sds)还是它首先解析来自RESP的值,例如。作为一个整数并将其存储为一个int(可能来自共享整数数组),这又是一个sds吗?我很好奇,因为在dict.c例如intdictAdd(dict*d,void*key,void*val){...}数据用作void*,这可能表明数据存储为字符串、整数或其他任何形式,但是一直

database - 与基于磁盘的 NoSQL 数据库相比,内存数据库的主要性能优势是什么?

阅读DesigningDataIntensiveApplications这本书,我遇到了这样的说法:Counterintuitively,theperformanceadvantageofin-memorydatabasesisnotduetothefactthattheydon’tneedtoreadfromdisk.Evenadisk-basedstorageenginemayneverneedtoreadfromdiskifyouhaveenoughmemory,becausetheoperatingsystemcachesrecentlyuseddiskblocksinmemo

caching - 如何使用 redis-cli 从命令行进行身份验证?

直到现在我使用下面的命令来删除所有遵循某种模式的键redis-cli--rawkeys"abc*"|xargsredis-clidel但最近我们决定为我们的redis服务器添加密码,所以在一个环境中我为redis服务器添加了密码,然后当我尝试执行上面的命令来删除key时,它不起作用,我需要使用吗上面命令中的密码?如何在上述命令中使用密码? 最佳答案 您可以指定-a后跟您的密码。redis-cli-ayourpwd[plusothercommands,seefullexamplebelow]您可以将多个key传递给一次调用DELcom