开发者社区 > 云原生 > 中间件 > 正文

seata使用redis的时候如何指定哪个库啊?配置了不生效,全走0库了

seata使用redis的时候如何指定哪个库啊?配置了不生效,全走0库了

展开
收起
鸡蛋灌饼儿 2023-01-27 14:08:38 290 0
4 条回答
写回答
取消 提交回答
  • 修改store.redis.database的值,默认是0。
    image.png

    service.vgroupMapping.my_tx_group=default
    store.mode=redis
    -----db-----
    store.db.datasource=druid
    store.db.dbType=mysql
    store.db.driverClassName=com.mysql.jdbc.Driver
    store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true
    store.db.user=root
    store.db.password=root
    ----redis----
    store.redis.host=127.0.0.1
    store.redis.port=6379
    store.redis.maxConn=10
    store.redis.minConn=1
    store.redis.database=1
    store.redis.password=123456
    store.redis.queryLimit=100
    ----client----
    client.undo.logTable=undo_log
    

    ——参考来源于SEATA官方文档

    2023-12-23 19:47:39
    赞同 1 展开评论 打赏
  • 北京阿里云ACE会长

    Seata 默认使用 Redis 的有序集合(sorted set)来存储事务数据,并且使用 Redis 的分数(score)来表示事务的版本号。在 Seata 中,每个事务都有一个唯一的 ID,这个 ID 被称为 transaction ID。Seata 使用 transaction ID 来唯一标识每个事务,并且在 Redis 中存储事务的数据时,将 transaction ID 作为有序集合的成员(member)存储,分数(score)为事务的版本号。
    在 Seata 中,可以通过配置 Redis 的连接参数来指定使用的 Redis 数据库。Seata 的 Redis 连接参数包括以下几个:

    1. redis.host:Redis 服务器的地址。
    2. redis.port:Redis 服务器的端口号。
    3. redis.password:Redis 服务器的密码。
    4. redis.database:Redis 数据库的编号。
      在 Seata 的配置文件中,可以通过设置 redis.database 参数来指定使用的 Redis 数据库。例如,如果要将 Seata 配置为使用 Redis 的数据库 1,可以设置 redis.database=1。如果不设置 redis.database 参数,Seata 会默认使用 Redis 的数据库 0。
      除了配置文件中的 redis.database 参数外,还可以在 Seata 的 Java 代码中通过设置 SeataConfig 对象的 redis.database 属性来指定使用的 Redis 数据库。例如:

    SeataConfig seataConfig = new SeataConfig();
    seataConfig.setRedisDatabase(1);

    设置了 redis.database 参数后,Seata 会使用指定的 Redis 数据库来存储事务数据

    2023-12-19 20:36:16
    赞同 展开评论 打赏
  • 在使用Seata与Redis时,如果你想指定特定的数据库,你可以在Seata的配置文件中进行相应的配置。

    首先,确保你已经正确配置了Seata和Redis。然后,在Seata的配置文件中,你可以找到与Redis相关的配置。通常,Seata使用registry.conf文件来配置Redis的连接信息。

    在registry.conf文件中,你可以找到与Redis相关的配置项,如file-service-provider.default-db和redis-service-provider.default-db。这些配置项用于指定默认的数据库。

    如果你想指定特定的数据库,你可以在配置文件中为这些配置项设置相应的值。例如,如果你想将默认的数据库设置为mydb,你可以将file-service-provider.default-db设置为mydb。

    请注意,具体的配置项名称和位置可能会因Seata的版本而有所不同。因此,请根据你的实际使用的Seata版本和配置文件结构进行相应的调整。

    另外,确保你的Seata客户端和服务端都使用相同的配置文件,并且配置文件中的配置项是正确的。如果配置不生效,可能是由于配置错误或版本不匹配等原因引起的。

    如果你仍然遇到问题,建议查看Seata的官方文档或社区论坛,以获取更多关于配置和使用Seata与Redis的信息和帮助。

    2023-12-15 16:04:17
    赞同 展开评论 打赏
  • 在使用Seata和Redis进行分布式事务管理时,你可以通过在配置文件中设置store.mode=redisstore.redis.mode=singlestore.redis.single.hoststore.redis.single.port等参数来指定使用的Redis库。然而,你提到即使配置了这些参数,仍然所有事务都走的是0库。这可能是因为某些原因导致配置没有生效。为了解决这个问题,你可以尝试以下步骤:

    1. 确保你的配置文件(如registry.conf)中已经正确设置了相关的Redis参数。
    2. 检查你的Seata Server是否已经正确启动,并且与你的微服务在同一网络环境中。
    3. 查看Seata的官方文档或者社区讨论,看是否有其他用户遇到了类似的问题,并且是否有解决方案可供参考。
    2023-12-13 16:54:38
    赞同 展开评论 打赏

为企业提供高效、稳定、易扩展的中间件产品。

相关电子书

更多
Redis集群演化的心路历程——从2.x到3.0时代 立即下载
ApsaraDB for Redis——与创客同行 立即下载
《Seata 1.3 新特性以及如何参与社区》 立即下载