Redis中的数据分离
我目前正在开发一个使用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
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的所有密钥,而不必担心密钥名称冲突
另外,你应该选择不同的数据库来存储不同的数据,因为在你的应用程序开发和操作中可能有很多情况,可能你想刷新一些数据,如果你在一个数据库中存储非常导入的数据,而在另一个数据库中存储便宜的数据,你可以很容易地做到这一点。但这取决于你