libsql server 复制简单使用

libsql server 通过暴力server 模式是让sqlite 具有了远端访问能力,同时基于复制能力,可以实现高可用

参考玩法

如下图,可以看到libsql server 可以灵活的进行数据的写出来,通过wal 实现数据更新

测试&使用

  • docker-compose
services:
  db1:
    image: ghcr.io/tursodatabase/libsql-server:latest
    ports:
      - "8080:8080"
      - "5001:5001"
    environment:
      - SQLD_NODE=primary
    volumes:
      - ./data1/libsql:/var/lib/sqld
  db2:
    image: ghcr.io/tursodatabase/libsql-server:latest
    ports:
      - "8081:8080"
      - "5002:5001"
    environment:
      - SQLD_NODE=replica
      - SQLD_PRIMARY_URL=http://db1:5001
    volumes:
      - ./data2/libsql:/var/lib/sqld
  • 测试 可以通过db2,写入,通过db1查询测试数据
curl -d '{"statements": ["CREATE TABLE IF NOT EXISTS users (username)", "INSERT INTO users VALUES (\"alice\")"]}' 127.0.0.1:8081

curl -d '{"statements": ["SELECT * FROM users"]}' 127.0.0.1:8080

以及通过db1写入,db2查询测试数据

curl -d '{"statements": ["CREATE TABLE IF NOT EXISTS usersv2 (username)", "INSERT INTO usersv2 VALUES (\"alice\")"]}' 127.0.0.1:8080

curl -d '{"statements": ["SELECT * FROM usersv2"]}' 127.0.0.1:8081

效果

 

 

说明

以上是一个简单复制的测试,后边测试下快照能力

参考资料

https://github.com/tursodatabase/libsql/blob/main/docs/USER_GUIDE.md

posted on 2025-01-17 08:00  荣锋亮  阅读(93)  评论(0)    收藏  举报

导航