我可以将两列彼此独特吗?或者在redis中使用复合主键?

Los*_*oul 2 database redis

我正在玩redis并希望重新创建一个我在mysql中的表.这是我用来创建它的mysql命令:

CREATE TABLE data_table(
        key1    INT SIGNED NOT NULL,
        value1    INT SIGNED NOT NULL,
        PRIMARY KEY (key1,value1)
    ); 
Run Code Online (Sandbox Code Playgroud)

我的数据基本上是两列,其中的数字彼此是唯一的,例如:

3:1
3:2
3:3
4:1
Run Code Online (Sandbox Code Playgroud)

当我玩redis并尝试创建上述数据时,'3'键不断被我输入的最后一个值替换.有没有办法让这个工作在redis?

Did*_*zia 5

使用Redis表示数据的更好模型是使用简单的value1对象集(每个key1对象一个).按照示例,您可以存储在Redis中:

3 -> set( 1, 2, 3 )
4 -> set( 1 )
Run Code Online (Sandbox Code Playgroud)

使用以下命令:

sadd 3 1 2 3
sadd 4 1
Run Code Online (Sandbox Code Playgroud)

您可以使用以下命令获取key1 = 3的所有值:

smembers 3
Run Code Online (Sandbox Code Playgroud)

您可以使用以下命令检查keys1 = 3,value1 = 2是否存在:

sismember 3 2
Run Code Online (Sandbox Code Playgroud)

Redis不是关系数据库系统,因此您不应尝试使用Redis映射关系模型.相反,您需要考虑如何构建和访问数据,就像使用编程语言的内存数据结构一样.