cari

Rumah  >  Soal Jawab  >  teks badan

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中文网2797 hari yang lalu1660

membalas semua(4)saya akan balas

  • PHPz

    PHPz2017-04-22 09:02:29

    Redis tidak direka untuk mengendalikan "hubungan" dari awal, dan mysql ialah pangkalan data hubungan. Walaupun tidak disyorkan, ia juga boleh dilaksanakan dengan redis. Anda boleh menggunakan id pengguna sebagai kunci dan menyimpan imej ini ke dalam senarai:
    $redis->rPush("user_1", "./1zxcz12ad.jpg");
    $redis->rPush("user_1", "./zsad12sad.jpg");
    $redis->rPush("user_2", "./12eaxx12sw1212.jpg");
    Kemudian anda boleh mendapatkan senarai ini melalui: $redis->lRange('user_1', 0, -1);.

    balas
    0
  • PHP中文网

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

    Anda hanya boleh menggunakan cincang.

    balas
    0
  • PHP中文网

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

    Jadual utama pengguna menggunakan cincang.
    Jadual pics juga menggunakan cincang, tetapi medan menggunakan ID pics

    balas
    0
  • 天蓬老师

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

    Pengguna HSET 1 "{name: 'jack', umur: 5, Gambar: [1, 2]}"

    Pengguna HSET 2 "{name: 'rose', umur: 12, Gambar: [4]}"

    Gambar HSET 1 "{img_url: './1zxcz12ad.jpg', Pengguna: 1'}"
    Gambar HSET 2 "{img_url: './zsad12sad.jpg', Pengguna: 1'}"
    HSET Pics 4 "{img_url: './12eaxx12sw1212.jpg', Pengguna: 2'}"

    适用于1对多或者1对1 (ahli markah kunci ZADD):

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

    Gambar pengguna 2的 (kekunci ZRANGEBYSCORE maks min [WITHSCORES])

    ZRANGEBYSCORE User_Pics 2 2

    查询 pengguna 1和2的pics

    ZRANGEBYSCORE User_Pics 1 2 WITHSCORE

    查询pics 4的user (ahli kunci ZSCORE)

    ZSCORE User_Pics 4




    Pengguna HSET 1 "{name: 'jack', umur: 5, Gambar: [1, 2]}"

    Pengguna HSET 2 "{name: 'rose', umur: 12, Gambar: [1,2]}"

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

    Gambar HSET 2 "{img_url: './zsad12sad.jpg', Pengguna: [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"

    查询 pengguna 2的pics

    ZRANGEBYSCORE User_Pics 2 2

    查询 pengguna 1和2的pics

    ZRANGEBYSCORE User_Pics 1 2 WITHSCORE

    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的pengguna

    ZRANGEBYSCORE Pics_User 1 1

    查询pics1 1和2的pengguna

    ZRANGEBYSCORE Pics_User 1 2 WITHSCORE

    balas
    0
  • Batalbalas