Redis 读/写

标签 redis

刚开始研究redis。

Redis 是一个单线程进程。

这是否意味着所有操作(例如 hset、hget 等)都以串行方式执行 - 这意味着例如具有以下操作:

hset foo:bar name 'Redis'
hget foo:bar name

hget只会在hset之后执行?

最佳答案

是的,Redis 实例是单线程的,所有基本操作都是原子的和序列化的。使用 Redis,您拥有并发性,但没有并行性。

在您的示例中,您可以保证 hget 将始终在 hset 之后执行。

您还可以保证,当您在 Redis 连接上发送多个查询时,回复将以完全相同的顺序返回(即 Redis 支持协议(protocol)流水线)。

请注意,它仅适用于与 Redis 实例的给定连接。如果数据在多个实例上分片,则将使用多个连接,并且在不同连接上发送的查询之间没有这种保证。

关于Redis 读/写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10298154/

相关文章:

node.js - 如何使用 Sails 为 Redis 记录调用 EXPIRE 命令

node.js - 在 Node.js 中安排任务

python - 停止服务时 Redis 数据丢失

python - Redis - 解析远程服务器提供的数据流

node.js - 带有 Websocket 的 Nodejs REST API

docker - 在云中为 Redis 创建连接字符串

ruby-on-rails - 当需要在 Rails 中重新生成 redis 数据库时如何保留它?

redis - 想使用 Redis 作为事件统计存储

c# - 2台redis服务器可以共享同一个快照转储文件吗?

redis - 达到 eta 时,长 eta(8 小时以上)的 celery 任务会连续执行多次