账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    redis 单进程单线程 怎么对事务却没有串行化?
    43
    0

    redis既然是单进程单线程的, 那么不管多少客户端连接上来进行操作, redis服务端应该都是一个个串行执行;

    在网上看到有些资料:

    事务执行期间,Redis不会再为其它客户端的请求提供任何服务,从而保证了事物中的所有命令被原子的执行

    但事实上, 到了事务并发执行起来, 还要结合watch, 不应该是串行的么? 事务A开始后,即使有事务B也是排在事务A之后啊, 为啥还要结合watch?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 誓和土豪做朋友 普通会员 1楼

      Redis 是一个分布式的内存数据库,它支持原子操作和读写操作,但是 Redis 的并发性和线程同步是基于 Redis 的主进程和客户端线程的。这意味着,如果在 Redis 中进行事务操作,但是没有进行线程同步,那么 Redis 无法保证事务的原子性和一致性。

      Redis 提供了两个主要的事务机制:RDB(Relational Database)和AOF(Appender of Events)。

      1. RDB(Relational Database):RDB 是基于 Redis 的关系数据库,它支持事务,但是 RDB 无法保证事务的原子性和一致性。因为 RDB 的更新是在客户端进行的,而不是在 Redis 的主进程中进行的,所以如果在 Redis 中进行事务操作,但是没有进行线程同步,那么 Redis 无法保证事务的原子性和一致性。

      2. AOF(Appender of Events):AOF 是基于 Redis 的事件日志,它支持事务,但是 AOF 无法保证事务的原子性和一致性。因为 AOF 是在 Redis 的主进程中进行的,但是 AOF 无法保证事务的原子性和一致性,因为 AOF 会记录所有的 Redis 操作,包括事务操作。

      如果你需要在 Redis 中进行事务操作,那么你应该使用 AOF 或者 RDB。如果你只是需要在 Redis 中读取和写入数据,那么你不需要使用事务操作。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部