Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redis中的数据分离_Redis_Database_Nosql - Fatal编程技术网

Redis中的数据分离

Redis中的数据分离,redis,database,nosql,Redis,Database,Nosql,我目前正在开发一个使用Redis的应用程序。该应用程序列出了一组数据,如下所示: First name: Peter Last name: Gabriel Occupation: Singer firstname display true order 1 editable false lastname display true order 2 editable

我目前正在开发一个使用Redis的应用程序。该应用程序列出了一组数据,如下所示:

First name: Peter
Last name: Gabriel
Occupation: Singer
firstname
    display
        true
    order
        1
    editable
        false

lastname
    display
        true
    order
        2
    editable
        false

occupation
    display
        true
    order
        3
    editable
        true
我们使用Redis来存储有关字段的一些信息(可见/隐藏、排序顺序、显示名称等)

数据以散列形式存储在Redis中,如下所示:

First name: Peter
Last name: Gabriel
Occupation: Singer
firstname
    display
        true
    order
        1
    editable
        false

lastname
    display
        true
    order
        2
    editable
        false

occupation
    display
        true
    order
        3
    editable
        true
所有这些数据都存储在数据库“0”中

现在,我们希望用户能够提交有关值的更改请求。我们还希望使用Redis存储更改请求列表:

bradpitt
    maritalstatus
        [{ old: 'married', new: 'divorced' }]
鉴于这是用于两种不同情况的数据,是否有某种方法可以在Redis中从逻辑上分离数据。在MongoDB中有集合,在SQL中有表。有没有Redis的等价物,或者我应该把它放在同一个地方?我应该使用数据库“1”吗


感谢redis world中有许多数据结构,但它们都是按键值存储的。在redis中没有类似于表或集合的东西

您应该仔细命名所有键,并将所有键字符串保存在文件中(例如,公共/常量)。例如,如果要在redis中通过哈希存储用户信息,可以执行以下操作:

USER_INFO_HASH_KEY = "user_info_%s"
在应用程序代码的其他位置,您可以从common/constants导入此密钥,并使用用户id填充占位符并获取真实密钥。像这样:

key = USER_INFO_HASH_KEY % user_id 
redis_conn.hset(key, field, value)
通过这种方法,您可以通过常量文件管理应用程序中redis的所有密钥,而不必担心密钥名称冲突

另外,你应该选择不同的数据库来存储不同的数据,因为在你的应用程序开发和操作中可能有很多情况,可能你想刷新一些数据,如果你在一个数据库中存储非常导入的数据,而在另一个数据库中存储便宜的数据,你可以很容易地做到这一点。但这取决于你