memcached - 是否可以通过前缀获取/搜索 Memcached 键?

标签 memcached enyim

我正在向 memcached 写入大量键/值 -> PREFIX_KEY1、PREFIX_KEY2、PREFIX_KEY3

我需要获取所有以 PREFIX_ 开头的键

可能吗?

最佳答案

抱歉,没有。 Memcached 使用哈希算法将 key 分布在明显随机的位置,因此这些 key 分散在各处。您必须扫描所有内容才能找到它们。

此外,您还应该意识到,根据设计,memcached 可以出于任何原因随时删除任何键。如果你要放入东西,你应该意识到你不能指望它会回来。这对于其原始用例来说绝对没问题,即用于减少数据库命中的缓存。但如果你想用它做一些更复杂的事情,这可能是一个严重的问题。

如果这些限制是一个问题,我建议您改用 Redis。它的行为很像 memcached,只不过它会持久保存数据并且允许您存储复杂的数据结构。因此,对于您的用例,您可以在 Redis 中存储哈希,然后稍后取出整个哈希。

关于memcached - 是否可以通过前缀获取/搜索 Memcached 键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4889631/

相关文章:

crash - memcached 已死,但子系统已锁定

ruby - 当 nginx 获取 memcached Rack 结果时显示添加的奇怪字符串

c# - 使用 AWS Elasticache 和 Enyim memcached 客户端时 Memcache 过期时间为 1 小时

c# - 使用 IEnumerables 序列化类 - 与 Enyim Memcached 一起使用

caching - Memcached 依赖项

nhibernate - Windows Azure 中的多个 NHibernate 实例是否需要外部二级缓存?

php - PHP 中的持久内存缓存 - 服务器池不断增长,直到 curr_connections 10

python - memcached 中对象的最佳序列化方法是什么?

.net - 防止与 memcached 的连接过多(Enyim 客户端)

c# - 如何配置 EnyimMemcachedCore 以访问 AWS Lambda 中的 Elasticache?