Skip to content

Files

Latest commit

 

History

History

APIJSONDemo-MultiDataSource-RediSQL

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

APIJSONDemo

支持多数据源-rediSQL

redis table 表名规范: REDIS_TABLE_*
开发人员可自行控制
JedisBuildData
public static final String REDIS_TABLE_KEY = "REDIS_TABLE_"; // rediSql table prefix

Access、Request配置 访问操作权限

rediSQL安装使用
https://github.com/RedBeardLab/rediSQL

下载 rediSQL.so https://github.com/RedBeardLab/rediSQL/releases

启动 redis-server 并加载 RediSQL.so

redis-server --loadmodule RediSQL_<version>.so

例如

redis-server --loadmodule RediSQL_v1.1.1_9b110f__debug.so
redis-server --loadmodule RediSQL_v1.1.1_9b110f__release.so
redis-server --loadmodule RediSQL_v1.1.1_9b110f_x86_64-unknown-linux-gnu_debug.so
redis-server --loadmodule RediSQL_v1.1.1_9b110f_armv7-unknown-linux-gnueabihf_debug.so
redis-server --loadmodule RediSQL_v1.1.1_9b110f_arm-unknown-linux-gnueabi_debug.so

官方docker安装

docker pull dalongrong/redisql
docker run -itd --name redisql -p 6399:6379  dalongrong/redisql

rediSQL注意事项
rediSQL免费版有后遥控制,每个小时会发送 redist info 统计信息
image

可以配host ,弄一个nginx 本地代理 解决,或者 项目自己重新打包

rediSQL java:
https://github.com/RedBeardLab/JRediSQL
https://www.youtube.com/watch?v=YRusC-AIq_g

本示例 用 redis cluster rediSQL, 具体redis集群模式, 开发人员自行控制
将 libredis_sql.so 导入redis.config
--loadmodule /etc/redis/libredis_sql.so
rediSQL 创建数据库表命令

REDISQL.EXEC DB "CREATE TABLE REDIS_TABLE_A(id TEXT, A INT, B TEXT, C TEXT, userId TEXT);"

REDISQL.EXEC DB "INSERT INTO REDIS_TABLE_A(id,A,B,C,userId) VALUES('1', 3, '1c', 'bar','1');"


REDISQL.EXEC DB "SELECT * FROM REDIS_TABLE_A;"

REDISQL.EXEC DB "drop table REDIS_TABLE_A;"

测试用例

{
	"@datasource": "redisCluster",
    "REDIS_TABLE_A":{
        "A": 1,
        "B": "B",
        "C": "C"
    },
    "tag": "REDIS_TABLE_A",
    "@explain": true,
    "format": true
}

{
    "REDIS_TABLE_A[]": [
        {
            "A": 5,
            "B": "5B",
            "C": "5C"
        },
        {
            "A": 6,
            "B": "6B",
            "C": "6C"
        },
        {
            "A": 7,
            "B": "7B",
            "C": "7C"
        }
    ],
    "tag": "REDIS_TABLE_A[]",
    "@datasource": "redisCluster",
    "@explain": true,
    "format": true
}

{
    "@datasource": "redisCluster",
    "REDIS_TABLE_A": {
        "id": "f2621698-99fa-4698-9fb0-8c7b585da403",
        "A": 1,
        "B": "1B"
    },
    "tag": "REDIS_TABLE_A",
    "@explain": true,
    "format": true
}

Request 表配置 
{"REDIS_TABLE_A[]": [{"MUST": "A,B", "REFUSE": "id"}], "INSERT": {"@role": "OWNER,ADMIN","@combine": "A | B"}}

{
    "@datasource": "redisCluster",
    "REDIS_TABLE_A": {
        "A": 1,
        "B": "1B",
        "C": "1-1-1C"
    },
    "tag": "REDIS_TABLE_A",
    "@explain": true,
    "format": true
}

{
    "@datasource": "redisCluster",
    "REDIS_TABLE_A:a": {
        "@column":"a,b,c",
        "b$": "7B%"
    },
    "@explain": true,
    "format": true
}

{
    "@datasource": "redisCluster",
    "REDIS_TABLE_A:a[]": {
        "REDIS_TABLE_A": {
            "@column":"a,b,c"
            //"b$": "1%"
        },
        "page":0,
        "count":3,
        "query": 2
    },
    "total@": "/REDIS_TABLE_A:a[]/total",
    "@explain": true,
    "format": true
}

{
    "@datasource": "redisCluster",
    "REDIS_TABLE_A": {
        "id": "f2621698-99fa-4698-9fb0-8c7b585da403"
    },
    "tag": "REDIS_TABLE_A",
    "@explain": true,
    "format": true
}

{
    "@datasource": "redisCluster",
    "REDIS_TABLE_A:a": {
        "id{}": ["1","eb3dd7c9-bab6-410c-b70a-cbbc3bd12896", "c83b3cfa-034e-4a9e-b2cf-83520db1ce05"]
    },
    "tag": "REDIS_TABLE_A[]",
    "@explain": true,
    "format": true
}