刚开始研究redis。
Redis是一个单线程进程。
这是否意味着所有操作(例如hset,hget等)都以串行性质执行 - 这意味着例如通过以下操作:
hset foo:bar name 'Redis'
hget foo:bar name
hget只会在hset之后执行?
答案 0 :(得分:3)
是的,Redis实例是单线程的,所有基本操作都是原子操作和序列化操作。使用Redis,你有并发性,但没有并行性。
在您的示例中,您可以保证在hset之后始终执行hget。
您还可以保证在Redis连接上发送多个查询时,将以相同的顺序返回回复(即Redis支持协议流水线操作)。
请注意,只有与Redis实例的给定连接才有效。如果数据在多个实例中分片,则将使用多个连接,并且在不同连接上发送的查询之间没有这样的保证。