redis一对多的实现???求解
PHP中文网
PHP中文网 2017-04-22 09:00:29
0
4
1659

最近在学习使用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中文网

认证0级讲师

membalas semua(4)
PHPzhong

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);.

洪涛

Anda hanya boleh menggunakan cincang.

Ty80

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

Peter_Zhu

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan