redis mysql 集群_mysql_redis
MySQL-Redis
1、什么是 MySQL-Redis ?
MySQL-Redis是一款可以在 MySQL 中操作 Redis 的一個UDF(MySQL用戶自定義函數插件),不能獨立運行,需要依賴于 MySQL
2、支持系統
mysql_redis可以在支持標準C99編譯器的操作系統上編譯,但是hiredis-vip與Redis的支持環境限制了mysql_redis的適用范圍
3、MySQL-Redis 可以操作 Redis 集群嗎?
可以的, MySQL-Redis可以操作單例或者集群Redis,操作的唯一的區別就是MySQL函數不一樣而已
4、性能怎么樣 ?
性能這個取決于網絡, 實例操作Redis速度很快。因為使用C語言開發
5、使用場景 ?
可以使用在需要 Redis和MySQL數據一致性的地方。
6、MySQL-Redis 函數
RedisConnect("127.0.0.1", 6379)
單例Redis連接,第二個參數可以省略,默認端口 6379
對應SQL代碼:
SELECT RedisConnect("127.0.0.1", 6379);
RedisClusterConnect
Redis集群連接
對應SQL代碼:
SELECT RedisClusterConnect("127.0.0.1:6379,127.0.0.2:6379");
多個機器之間采用,隔開
RedisConnectFree
對應 RedisConnect()的連接釋放
操作完成后,如果需要手動釋放,需要調用本方法,目前暫未實現連接池,后續版本實現
對應SQL代碼:
SELECT RedisConnectFree();
RedisClusterConnectFree
對應 RedisClusterConnect()的連接釋放
操作完成后,如果需要手動釋放,需要調用本方法,目前暫未實現連接池,后續版本實現
使用方法:
SELECT RedisClusterConnectFree();
RedisSet
設置鍵值對的快捷方法
對應SQL代碼:
SELECT RedisSet("a", 1); -- 等同于 Redis中的語句: SET a 1
RedisClusterSet
設置鍵值對的集群方法方法,參數等同于 RedisSet函數,見上面
RedisExecCommand
執行Redis語句,包含三個或者兩個參數,如下SQL:
三個參數的SQL方法:
SELECT RedisExecCommand("SET", "a", 1);
兩個參數的SQL方法:
SELECT RedisExecCommand("SELECT", 1);
RedisClusterExecCommand
集群操作方法,參數等同于上面單例:RedisExecCommand
RedisRawCommand
執行Redis語句,由用戶提供一個完整的Redis語句
SQL代碼如下:
SELECT RedisRawCommand("SET Hello World");
RedisClusterRawCommand
集群模式的RedisClusterRawCommand方法,參數等同于 單例的 RedisRawCommand
RedisListIndex
獲取 Redis List數據結構的某一項,第一項表示 Redis數據結構,第二項表示索引值,如:
SELECT RedisListIndex(RedisRawCommand("LRANGE score_lists 0 10"), 1);
RedisListJoin
將 Redis List數據結構的所有項通過第二個參數合并為一個字符串,如:
SELECT RedisListJoin(RedisRawCommand("LRANGE score_lists 0 10"), "-");
// 假設 Redis List score_lists結構如下:
// 0 1 2
// 那么合并結果:
// 0-1-2
7、返回值
1:
RedisSET 、 RedisClusterSet 、RedisConnect 、RedisConnectFree 、 RedisClusterConnect 、 RedisClusterConnectFree 成功的情況下返回 1,否則SQL語句錯誤
2:
RedisExecCommand 、 RedisClusterExecCommand 、RedisRawCommand 、RedisClusterRawCommand、RedisListIndex 、RedisListJoin 返回字符串,具體如下:
OK
在執行 Redis SET命令的時候返回 "OK"表示成功,否則就表示錯誤信息
其他字符串
執行GET 命令的時候 返回具體值
8、怎么安裝 ?
前提條件:
電腦安裝 Redis 、MySQL(開發機器MySQL 5.7.22)、hiredis-vip
準備好前提條件后,開始MySQL-Redis插件的編譯安裝過程
git clone 代碼庫
git clone https://gitee.com/josinli/mysql_redis.git
修改 CMakeLists.txt 文件,因為代碼庫采用 CMake編譯系統:
cmake_minimum_required(VERSION 3.13)
project(udf_redis C)
set(CMAKE_C_STANDARD 99)
include_directories(
.
/usr/local/mysql/include/ # 把這行更改為您系統安裝mysql的頭文件目錄
/usr/local/include/hiredis-vip # 把這行更改為您系統安裝hiredis-vip的頭文件目錄
)
link_directories(
/usr/local/lib # 把這行更改為您系統的 hiredis-vip的lib安裝目錄
)
add_library(udf_redis SHARED mysql_redis.c mysql_redis.h)
target_link_libraries(udf_redis hiredis_vip)
更改完成后,執行下面的操作
cd build
cmake ..
make
可以看到build目錄生成了庫文件 libudf_redis.so 或者 libudf_redis.dylib
進入您的MySQL,執行如下SQL語句找到您的MySQL插件目錄:
SHOW VARIABLES LIKE 'plugin_dir%';
拷貝上面第四步中的 libudf_redis.so 或者 libudf_redis.dylib 到第五步中的目錄中
針對您的系統,Linux系統拷貝 create_function_linux.sql 或者 OSX系統拷貝 create_function_osx.sql 并執行
重啟您的MySQL,開始在SQL中愉快的體驗Redis吧!
總結
以上是生活随笔為你收集整理的redis mysql 集群_mysql_redis的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果我购买了每个月6块钱50GB的icl
- 下一篇: vscode插件可以直接复制到_一款可以