<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                使用Lua腳本可以實現更復雜的數據處理邏輯,go-mysql-transfer支持Lua5.1語法 # **示例** t_user表,數據如下: ![](images/Redis8.png) ## **示例一** Lua腳本: ``` -- t_user_redis.lua local json = require("json") -- 加載json模塊 local ops = require("redisOps") --加載redis操作模塊 local row = ops.rawRow() --數據庫當前變更的一行數據,table類型,key為列名稱 local action = ops.rawAction() --當前數據庫事件,包括:insert、updare、delete local id = row["ID"] --獲取ID列的值 local userName = row["USER_NAME"] --獲取USER_NAME列的值 local key = "user_"..id -- 定義key if action == "delete" -- 刪除事件 then ops.DEL(key) ops.SREM("user_set",userName) else local password = row["PASSWORD"] --獲取USER_NAME列的值 local createTime = row["CREATE_TIME"] --獲取CREATE_TIME列的值 local result = {} -- 定義一個table result["id"] = id result["userName"] = userName result["password"] = password result["createTime"] = createTime result["source"] = "binlog" -- 數據來源 local val = json.encode(result) -- 將newTable轉為json ops.SET(key,val) -- 對應Redis的SET命令,第一個參數為key(支持string類型),第二個參數為value if action == "update" -- 修改事件 then local oldRow = ops.rawOldRow() --數據庫變更之前的數據(修改之前的數據) local oldUserName = oldRow["USER_NAME"] --獲取USER_NAME列的值 ops.SREM("user_set",oldUserName) -- 刪除舊值 end ops.SADD("user_set",userName) -- 對應Redis的SADD命令,第一個參數為key(支持string類型),第二個參數為value end ``` 引入腳本: ``` rule: - schema: eseap table: t_user lua_file_path: lua/t_user_redis.lua #lua腳本文件 ``` 同步到Redis的數據如下: ![](images/Redis9.png) ![](images/Redis10.png) ## **示例二,將talbe中的一行映射成一個HASH** Lua腳本如下: ``` -- t_user_redis2.lua local ops = require("redisOps") --加載redis操作模塊 local row = ops.rawRow() --當前數據庫的一行數據,table類型,key為列名稱 local action = ops.rawAction() --當前數據庫事件,包括:insert、updare、delete if action == "insert" -- 只監聽insert事件 then local key = row["USER_NAME"] --獲取USER_NAME列的值 local id = row["ID"] --獲取ID列的值 local userName = row["USER_NAME"] --獲取USER_NAME列的值 local password = row["PASSWORD"] --獲取PASSWORD列的值 local createTime = row["CREATE_TIME"] --獲取CREATE_TIME列的值 ops.HSET(key,"id",id) -- 對應Redis的HSET命令 ops.HSET(key,"userName",userName) -- 對應Redis的HSET命令 ops.HSET(key,"password",password) -- 對應Redis的HSET命令 ops.HSET(key,"createTime",createTime) -- 對應Redis的HSET命令 end ``` 引入腳本: ``` rule: - schema: eseap table: t_user lua_file_path: lua/t_user_redis2.lua #lua腳本文件 ``` 同步到Redis的數據如下: ![](images/Redis11.png) # **redisOps模塊** redisOps模塊提供了操作Redis的方法,如下: 1. SET: Redis字符串命令,設置指定key的值。如:ops.SET(key,val) 2. DEL: Redis字符串命令,刪除指定key的值。如:ops.DEL(key) 3. HSET: Redishash命令,設置哈希表key中的字段field的值。如:ops.HSET(key,field,val) 4. HDEL: Redishash命令,設置哈希表key中的字段。如:ops.HDEL(key,field) 5. RPUSH: Redis列表命令,將值插入到列表key的頭部。如:ops.RPUSH(key,val) 6. LREM: Redis列表命令,移除列表key的值。如:ops.LREM(key,val) 7. SADD: Redis集合命令,向集合key添加值。如:ops.SADD(key,val) 8. SREM: Redis集合命令,移除集合key的值。如:ops.SREM(key,val) 9. ZADD: Redis有序集合命令,向有序集合key添加值。如:ops.ZADD(key,score,val) 10. ZREM: Redis有序集合命令,移除有序集合key的值。如:ops.ZREM(key,val)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看