草庐IT

multi-model-database

全部标签

database-design - Redis ACL架构

我想使用redis来检查用户是否对网站上的某些地方有权限。该网站允许用户创建功能有限的群组。基本上有两种类型的用户(可能更多)——管理员和读者。一个用户可以参加不同的组(10-15组)第一个想法-为每个用户创建redis哈希并包括他们作为管理员的组和他们作为读者的组。然后我可以通过在注销时删除记录并在登录和更改时设置权限来控制这些。散列也可能过期。第二个想法-为每个组创建散列并存储管理员成员和读者成员。这样做的好处是群组的数量可能会少于成员,而且我也可以提取群组的详细信息。所以我的两个问题是-哪种方法在架构方面更好?我是否应该使用哈希(因为我最终会得到类似group:1admins[1

database-design - Redis ACL架构

我想使用redis来检查用户是否对网站上的某些地方有权限。该网站允许用户创建功能有限的群组。基本上有两种类型的用户(可能更多)——管理员和读者。一个用户可以参加不同的组(10-15组)第一个想法-为每个用户创建redis哈希并包括他们作为管理员的组和他们作为读者的组。然后我可以通过在注销时删除记录并在登录和更改时设置权限来控制这些。散列也可能过期。第二个想法-为每个组创建散列并存储管理员成员和读者成员。这样做的好处是群组的数量可能会少于成员,而且我也可以提取群组的详细信息。所以我的两个问题是-哪种方法在架构方面更好?我是否应该使用哈希(因为我最终会得到类似group:1admins[1

database - 如何解析Redis AOF文件?

我正在尝试了解RedisAOF文件的工作原理,并可能会在给定一些简单的RedisAOF文件的情况下编写解析器。现在我通过在Redis中执行这些命令生成了一个AOF文件:SETfirstkeyfirstvalueSETsecondkeysecondvalue生成的AOF文件如下所示:*2$6SELECT$10*3$3SET$8firstkey$10firstvalue*3$3SET$9secondkey$11secondvalue我可以看到firstkey、firstvalue和SET等关键字。但我不太了解其余部分,尤其是所有这些数字,如*2、$6意味着,当redis尝试读取aof文件并

database - 如何解析Redis AOF文件?

我正在尝试了解RedisAOF文件的工作原理,并可能会在给定一些简单的RedisAOF文件的情况下编写解析器。现在我通过在Redis中执行这些命令生成了一个AOF文件:SETfirstkeyfirstvalueSETsecondkeysecondvalue生成的AOF文件如下所示:*2$6SELECT$10*3$3SET$8firstkey$10firstvalue*3$3SET$9secondkey$11secondvalue我可以看到firstkey、firstvalue和SET等关键字。但我不太了解其余部分,尤其是所有这些数字,如*2、$6意味着,当redis尝试读取aof文件并

database - 如何保持 Redis key 的过期时间,即使我设置了一些内容?

设定100过期一个86400好的,现在,“a”将在一天内过期。我想将“a”设置为其他值,但我仍然希望它根据我创建的初始“EXPIRE”过期。换句话说,当我将“a”设置为新内容时,不要删除EXPIRE。 最佳答案 这是我的东西requested2yearsago现在添加了它(https://github.com/antirez/redis/pull/6679)。SETfoo1KEEPTTL这将在下一个版本中出现。 关于database-如何保持Rediskey的过期时间,即使我设置了一些内

database - 如何保持 Redis key 的过期时间,即使我设置了一些内容?

设定100过期一个86400好的,现在,“a”将在一天内过期。我想将“a”设置为其他值,但我仍然希望它根据我创建的初始“EXPIRE”过期。换句话说,当我将“a”设置为新内容时,不要删除EXPIRE。 最佳答案 这是我的东西requested2yearsago现在添加了它(https://github.com/antirez/redis/pull/6679)。SETfoo1KEEPTTL这将在下一个版本中出现。 关于database-如何保持Rediskey的过期时间,即使我设置了一些内

node.js - Redis 'multi' 使用动机

从文档中可以清楚地看出,我应该在循环中或在经常调用的事件或函数中使用multi进行redis查询。示例表单文档:varredis=require("redis"),client=redis.createClient(),multi;//startaseparatemulticommandqueuemulti=client.multi();multi.incr("incrthing",redis.print);multi.incr("incrotherthing",redis.print);//runsimmediatelyclient.mset("incrthing",100,"inc

node.js - Redis 'multi' 使用动机

从文档中可以清楚地看出,我应该在循环中或在经常调用的事件或函数中使用multi进行redis查询。示例表单文档:varredis=require("redis"),client=redis.createClient(),multi;//startaseparatemulticommandqueuemulti=client.multi();multi.incr("incrthing",redis.print);multi.incr("incrotherthing",redis.print);//runsimmediatelyclient.mset("incrthing",100,"inc

node.js - Redis 中用于 node.js 的 Multi-Tenancy

我们有一个Multi-TenancyNodeJS应用程序,我们现在正在为我们的一些数据添加一个缓存层。我们的目标是将Redis缓存与redispackage一起使用并且我们正在尝试检查支持Multi-Tenancy的选项,并牢记两个要点:保护数据。清除租户级别的旧数据。到目前为止,我们的调查结果是我们可以为每个租户使用单独的Redis实例-这对我们来说不是一个好的解决方案。我们发现的另一种选择是使用“tenant_id:”前缀为我们的键命名空间。此选项解决了第一点-数据现在是安全的,但我们还有第二点需要解决。我们在这一点上的用例是,一个租户可以放置大量数据,这些数据将填满缓存并推出其他

node.js - Redis 中用于 node.js 的 Multi-Tenancy

我们有一个Multi-TenancyNodeJS应用程序,我们现在正在为我们的一些数据添加一个缓存层。我们的目标是将Redis缓存与redispackage一起使用并且我们正在尝试检查支持Multi-Tenancy的选项,并牢记两个要点:保护数据。清除租户级别的旧数据。到目前为止,我们的调查结果是我们可以为每个租户使用单独的Redis实例-这对我们来说不是一个好的解决方案。我们发现的另一种选择是使用“tenant_id:”前缀为我们的键命名空间。此选项解决了第一点-数据现在是安全的,但我们还有第二点需要解决。我们在这一点上的用例是,一个租户可以放置大量数据,这些数据将填满缓存并推出其他