小编典典

我可以使两列彼此唯一吗?还是在redis中使用复合主键?

redis

我在玩redis,想重新创建我在mysql中拥有的表。这是我用来创建它的mysql命令:

CREATE TABLE data_table(
        key1    INT SIGNED NOT NULL,
        value1    INT SIGNED NOT NULL,
        PRIMARY KEY (key1,value1)
    );

我的数据基本上是两列,每一列都有彼此唯一的数字,例如:

3:1
3:2
3:3
4:1

当我在redis上玩耍并尝试创建上述数据时,“ 3”键只会不断被我输入的最后一个值取代。有没有办法使该版本在Redis中工作?


阅读 451

收藏
2020-06-20

共1个答案

小编典典

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

3 -> set( 1, 2, 3 )
4 -> set( 1 )

使用以下命令:

sadd 3 1 2 3
sadd 4 1

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

smembers 3

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

sismember 3 2

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

2020-06-20