Я реализовал корзину в redis. Использую для этого hash. Ключ хеша - id корзины.
Добавлять товар можно одним запросом! Можно ставить TTL на корзину и она удалится автоматически, база данных основная не задействована! Сплошной cool!
127.0.0.1:6379> HINCRBY cart:12345 item:4321 1
(integer) 1
127.0.0.1:6379> HINCRBY cart:12345 item:4321 1
(integer) 2
127.0.0.1:6379> HINCRBY cart:12345 item:4345 1
(integer) 1
127.0.0.1:6379> HINCRBY cart:12345 item:4345 1
(integer) 2
127.0.0.1:6379> HINCRBY cart:12345 item:3456 1
(integer) 1
127.0.0.1:6379> HINCRBY cart:12345 item:4321 1
(integer) 3
127.0.0.1:6379> HGETALL cart:12345
1) "item:4321"
2) "3"
3) "item:4345"
4) "2"
5) "item:3456"
6) "1"
127.0.0.1:6379> HINCRBY cart:12345 item:4321 4
(integer) 7
127.0.0.1:6379> HGETALL cart:12345
1) "item:4321"
2) "7"
3) "item:4345"
4) "2"
5) "item:3456"
6) "1"
127.0.0.1:6379>