Redis 新手 - mysql 表的等效方法

标签 redis

我是 Redis 的新手,希望有一个“最佳实践”解决方案来实现与 mysql 数据库中的“用户”表等效的功能,以便在网络应用程序中处理用户。

我会在 Redis 中创建用户 SET 吗?还是每个用户都有一个 SET 的用户数据库?

最佳答案

我的用户标准设置是一个标准键 u:userid 中的序列化对象 - 这个对象在每次请求时都会被检索,并且永远不需要只访问其中一个属性。

您也可以为用户属性使用散列而不是 json,但我的设置包括用作强类型对象的所有内容以及在与客户端不同的服务器上运行的 redis,因此使用 json 可以更轻松地使用通用反序列化和最大限度地减少任何延迟问题。

除了用户对象本身,您还需要为查找用户所需的任何字段创建索引 - 例如,要允许用户使用电子邮件地址登录,您需要一个 key e:电子邮件 => 用户名。散列也可以在这里工作——重要的是你需要 O(1) 的东西来从电子邮件到用户对象。

有时部分用户数据应该有自己的键——例如,关注者列表与 redis 集完美匹配,因此最好以这种形式存储。

关于Redis 新手 - mysql 表的等效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4915052/

相关文章:

redis - 准备上传到 Redis 服务器的数据

caching - 基于投票的网站/应用程序的架构

Redis 服务器在同一主机上的多个集群

scala - 发布/订阅中的 Redis 插件阻塞

.net - ObjectCache 的异步版本?

redis - 如果我总是在 Redis 中获取多个字段,那么哈希总是更可取吗?

php - 使用本地 Redis 服务器在低流量站点的生产环境中缓存数据库查询是否安全?

Redis 限制订阅 channel 的数量?

performance - Redis 发布/订阅最佳实践

redis - 如何使用redis的 `DUMP`和 `RESTORE`(离线)?