在Redis中是否可以创建命名空间?
根据我发现的信息,所有全局命令(计数、删除所有)都会作用于所有对象。有没有一种方法可以创建子空间,以便这些命令在上下文中被限制?
我不希望为此目的设置不同的Redis服务器。
我认为答案是“否”,想知道为什么没有实现这个功能,因为它似乎是一个有用的功能,而没有太多开销。
"select()"
方法。(在这种情况下,.select()
是Python Redis模块的方法名称...我假设其他库和接口的命名方式类似。)如果你使用Node,ioredis 提供了透明键前缀功能,它通过在每个命令的键之前添加给定的字符串来实现。它的工作方式与 Ruby 的 redis-namespace 相同。这种客户端方法仍将所有的键放入同一个数据库中,但至少添加了一些结构,你也不需要使用多个数据库或服务器。
var fooRedis = new Redis({ keyPrefix: 'foo:' });
fooRedis.set('bar', 'baz'); // Actually sends SET foo:bar baz
redis-namespace
库的顶部,它告诉你这是一个简陋的命名空间,它只会在每个键名前加上 "ns:*" 前缀。 - Mirek Rusin
$redis
变量,并传递了新创建的Redis.new
参数(这当然不尊重任何 Rails 配置)。 - Sachin