recherche

Maison  >  Questions et réponses  >  le corps du texte

redis一对多的实现???求解

最近在学习使用redis,在关系型的mysql下一个简单的一对多,很简单,如下

用户表user主表

id name age
1 jack 5
2 rose 12
3 dad 23

图片表pics从表

id uid img_url
1 1 ./1zxcz12ad.jpg
2 1 ./zsad12sad.jpg
3 1 ./12ea2222123xsw1212.jpg
4 2 ./12eaxx12sw1212.jpg

换到基于key=》value的redis就晕了。。。请问如何设计出符合上表格的redis数据设计???

PHP中文网PHP中文网2798 Il y a quelques jours1664

répondre à tous(4)je répondrai

  • PHPz

    PHPz2017-04-22 09:02:29

    Redis n'a pas été conçu pour gérer les "relations" depuis le début, et MySQL est une base de données relationnelle. Bien que cela ne soit pas recommandé, il peut également être implémenté avec Redis. Vous pouvez utiliser l'identifiant de l'utilisateur comme clé et enregistrer ces images dans une liste :
    $redis->rPush("user_1", "./1zxcz12ad.jpg");
    $redis->rPush("user_1", "./zsad12sad.jpg");
    $redis->rPush("user_2", "./12eaxx12sw1212.jpg");
    Ensuite, vous pouvez obtenir cette liste via : $redis->lRange('user_1', 0, -1);.

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-22 09:02:29

    Vous ne pouvez utiliser que du hasch.

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-22 09:02:29

    La table principale de l'utilisateur utilise du hachage.
    La table des photos utilise également un hachage, mais le champ utilise l'ID des photos

    répondre
    0
  • 天蓬老师

    天蓬老师2017-04-22 09:02:29

    Utilisateur HSET 1 "{nom : 'jack', âge : 5, photos : [1, 2]}"

    Utilisateur HSET 2 "{nom : 'rose', âge : 12, photos : [4]}"

    Photos HSET 1 "{img_url : './1zxcz12ad.jpg', Utilisateur : 1'}"
    Photos HSET 2 "{img_url : './zsad12sad.jpg', Utilisateur : 1'}"
    HSET Photos 4 "{img_url : './12eaxx12sw1212.jpg', Utilisateur : 2'}"

    适用于1对多或者1对1 (membre du score clé ZADD):

    ZADD User_Pics 1 1
    ZADD User_Pics 1 2
    ZADD User_Pics 2 4

    Photos de l'utilisateur 2 (touche ZRANGEBYSCORE min max [WITHSCORES])

    ZRANGEBYSCORE User_Pics 2 2

    Photos de l'utilisateur 1 et 2 de l'utilisateur

    ZRANGEBYSCORE User_Pics 1 2 AVECSCORES

    查询pics 4的utilisateur (membre clé ZSCORE)

    ZSCORE User_Pics 4




    Utilisateur HSET 1 "{nom : 'jack', âge : 5, photos : [1, 2]}"

    Utilisateur HSET 2 "{nom : 'rose', âge : 12, photos : [1,2]}"

    Photos HSET 1 "{img_url : './1zxcz12ad.jpg', Utilisateur : [1, 2]'}"

    Photos HSET 2 "{img_url : './zsad12sad.jpg', Utilisateur : [1, 2]'}"

    对于多对多 (值为 "userID-PicsID" ):
    ZADD User_Pics 1 "1-1"
    ZADD User_Pics 1 "1-2"
    ZADD User_Pics 2 "2-1"
    ZADD User_Pics 2 "2-2"

    Photos de l'utilisateur 2 de 查询

    ZRANGEBYSCORE User_Pics 2 2

    Photos de l'utilisateur 1 et 2 de l'utilisateur

    ZRANGEBYSCORE User_Pics 1 2 AVECSCORES

    ZADD Pics_User 1 "1-1"
    ZADD Pics_User 1 "2-1"
    ZADD Pics_User 2 "1-2"
    ZADD Pics_User 2 "2-2"

    查询pics1 1的utilisateur

    ZRANGEBYSCORE Pics_User 1 1

    查询pics1 1和2的utilisateur

    ZRANGEBYSCORE Pics_User 1 2 AVECSCORES

    répondre
    0
  • Annulerrépondre