我是 redis
的新手,我正在使用它为每个用户存储他选择阅读到本周末的一些书籍。显然,用户应该能够添加/删除/清除他的图书列表。
我可以利用 redis
做一些类似“SQL”的事情吗?例如:DELETE FROM ....
或判断用户 A 是否有他的书列表...
The following code shows how I'm doing to figure out whether a user has a given book already stored
// Storing part
$books = array(
array(
'reference' => 'HKL33432h22',
'titre' => 'titre1',
'auteur' => 'toto'
),
array(
'reference' => 'APZO0000NKHD',
'titre' => 'titre2',
'auteur' => 'titi'
),....
);
$this->redis->set($userId, serialize($books));
// Searching part
$referenceToLookFor = '89OHJLKJFKEJH';
$found = false;
$storedBooks = unserialize($this->redis->get($userId));
foreach ($storedBooks as $i => $storedBook) {
if ($referenceToLookFor === $storedBook['reference']) {
$found = true;
}
}
是否有可能让 redis
判断用户是否有书,例如通过它的引用(唯一值)
Used bundle
"snc/redis-bundle": "1.1.x-dev"
最佳答案
您可能正在寻找 Redis 的 Hash datatype .您可以将您的书籍数组放入一个散列中,然后您可以使用 HEXISTS
检查是否存在键(例如引用号)。 , 使用 HSCAN
遍历散列中的所有书籍或使用 HDEL
删除特定条目并添加 HSET
.
请记住,Redis 不知道也不关心您在它的键中存储了什么数据,它完全是基于键的,没有任何 SQL 样式 WHERE key=value
。
关于php - 研究redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31099987/