連接方式介紹
GeminiDB Redis提供使用內網的連接方式如下:
連接方式
| 連接方式 | 使用場景 | 說明 |
|---|---|---|
| 內網連接 | 介紹通過內網連接GeminiDB Redis實例的方法。該方式適用于當應用部署在彈性云服務器上, 且該彈性云服務器與數據庫實例處于同一區域、同一VPC內時連接數據庫實例。 |
安全性高,可實現數據庫實例的較好性能。 |
| 公網連接 | 介紹通過公網連接GeminiDB Redis實例的方法。該方式適用于不能通過內網方式訪問數據庫實例時, 可以單獨使用公網域名或彈性IP連接彈性云服務器(或公網主機)與數據庫實例。 |
為了獲得更快的傳輸速率和更高的安全性,建議您將應用遷移到與您的數據庫實例在同一VPC子網內,使用內網連接。 |
| 程序代碼連接 | 介紹通過Jedis連接實例、通過Hiredis連接實例、通過NodeJs連接實例、通過PHP連接實例和通過Python連接實例等程序語言的方式訪問GeminiDB Redis實例的方法。 | - |
防暴力破解
- 防暴力破解安全機制
GeminiDB Redis默認開啟auth認證的防暴力破解功能,當auth認證錯誤次數累計超過5次,該IP會被后臺鎖定,不能繼續進行auth認證。
- 自動解除機制
當一個IP被鎖定超過5秒后,該IP會被自動解鎖,此后可以重新進行認證。
- 人工解鎖
如需人工解鎖IP,或關閉實例的防暴力破解功能,請聯系客服提交工單,進行授權確認。
注意為進一步提高安全性,可根據實際情況提交工單,由技術人員協助進行認證次數及鎖定時長的調節。
為保證安全性,請您充分評估風險,謹慎關閉或調整該安全策略,關閉后由此帶來的安全風險及事故,將不計入服務SLA中,由客戶自行承擔。
通過內網連接實例
以Linux操作系統為例,指導您通過內網IP連接GeminiDB Redis實例。
使用須知
- 目標實例必須與彈性云主機在同一個虛擬私有云和子網內才能訪問。
- 彈性云主機必須處于目標實例所屬安全組允許訪問的范圍內。
- 場景一: 如果目標實例所屬安全組為 默認安全組 ,則無需設置安全組規則。
- 場景二: 如果目標實例所屬安全組 非默認安全組 ,請查看安全組規則是否允許該彈性云主機訪問。
如果安全組規則允許彈性云主機訪問,即可連接實例。
如果安全組規則不允許彈性云主機訪問,需要在實例安全組添加一條“入”的訪問規則。
- 設置安全組的具體操作請參考設置安全組規則。
前提條件
- 創建彈性云主機,以Linux操作系統為例。詳情請參見《彈性云主機用戶指南》中“創建并登錄彈性云主機”的內容。
注意彈性云主機必須和實例在同一個虛擬私有云和子網內才能訪問。
- 下載。
內網IP連接
-
登錄彈性云主機,詳情請參見《彈性云主機用戶指南》中“創建并登錄彈性云主機”的內容。
-
將Redis客戶端安裝包上傳到彈性云主機。
-
解壓客戶端工具包。
tar -xzf redis-5.0.7.tar.gz -
在“src”目錄下,連接數據庫實例。
cd redis-5.0.7 make cd src ./redis-cli -h <DB_HOST> -p <DB_PORT> -a <DB_PWD> 示例: ./redis-cli -h 192.168.xx.xx -p 8635 -a <DB_PWD>參數 說明 <DB_HOST> 待連接實例的內網IP。
您可以在“實例管理”頁面,單擊實例名稱,進入“基本信息”頁面,在節點信息列表中獲取“內網IP”。
如果您創建的實例有多個節點,選擇其中任意一個節點的內網IP即可連接GeminiDB Redis實例。<DB_PORT> 待連接實例的端口,一般默認為8635,具體請以實際端口為準。
獲取實例端口的方法如下:
在“實例管理”頁面,單擊實例名稱,進入“基本信息”頁面,在“網絡信息 > 數據庫端口”處獲取當前實例的端口信息。<DB_PWD> 創建GeminiDB Redis實例時設置的管理員密碼。 -
出現如下信息,說明連接成功。
IP:port>
通過公網連接實例
GeminiDB Redis支持使用彈性云主機或本地設備,通過公網連接GeminiDB Redis實例。
前提條件
-
GeminiDB Redis實例節點需要綁定彈性IP并設置安全組規則,確保可以通過彈性云服務器訪問彈性IP,具體操作請參見綁定彈性IP和設置安全組規則。
說明GeminiDB Redis實例下存在多個節點,選擇任意一個節點綁定彈性IP即可。
-
下載。
操作步驟
-
登錄彈性云主機,詳情請參見《彈性云主機用戶指南》中“創建并登錄彈性云主機”的內容。
-
將Redis客戶端安裝包上傳到彈性云主機。
-
解壓客戶端工具包。
tar -xzf redis-5.0.7.tar.gz -
在“src”目錄下,連接數據庫實例。
cd redis-5.0.7 make cd src ./redis-cli -h <DB_HOST> -p <DB_PORT> -a <DB_PWD> 示例: ./redis-cli -h 192.168.xx.xx -p 8635 -a <DB_PWD>參數 說明 <DB_HOST> 待連接實例的內網IP。
您可以在“實例管理”頁面,單擊實例名稱,進入“基本信息”頁面,在節點信息列表中獲取“內網IP”。
如果您創建的實例有多個節點,選擇其中任意一個節點的內網IP即可連接GeminiDB Redis實例。<DB_PORT> 待連接實例的端口,一般默認為8635,具體請以實際端口為準。
獲取實例端口的方法如下:
在“實例管理”頁面,單擊實例名稱,進入“基本信息”頁面,在“網絡信息 > 數據庫端口”處獲取當前實例的端口信息。<DB_PWD> 創建GeminiDB Redis實例時設置的管理員密碼。 -
出現如下信息,說明連接成功。
IP:port>
通過IPv6連接GeminiDB Redis
GeminiDB Redis接口支持使用IPv4/IPv6雙棧網絡,默認實例只分配IPv4地址。當開啟IPv4/IPv6連接功能時,實例會分配IPv4地址和IPv6地址,根據需要選擇相應地址連接即可。
前提條件
- 創建雙棧實例時,需確保實例所在VPC和子網已經開通IPv6。VPC開通IPv6請參見創建IPv4/IPv6雙棧子網。
- 連接雙棧實例時,需確保業務ECS支持IPv6。ECS支持雙棧網絡請參見IPv4/IPv6雙棧網絡。
- 默認IPv6地址只具備私網通信能力,如果您需要通過該IPv6地址訪問Internet或被Internet上的IPv6客戶端訪問,您需要購買和綁定共享帶寬。具體請參考購買和加入共享帶寬。(如您已有共享帶寬,可以不用重新購買,直接將IPv6地址加入共享帶寬即可。)
- 使用IPv6地址連接實例時,請先確保實例的IPv6地址已配置在實例的安全組規則里,具體請參考添加安全組規則。
使用須知
- 當前功能屬于公測階段,僅新創實例支持開通IPv4/IPv6雙棧功能。如需使用IPv4/IPv6雙棧網絡連接功能,請聯系客服申請開通。
- 開通IPv4/IPv6雙棧網絡連接功能后,創建IPv4/IPv6雙棧實例需要選擇支持IPv6的可用區、規格、子網,并且勾選啟用IPv6。
- IPv6雙棧,當前暫不收費,后續定價會根據運營商收費策略的變化進行調整。
- 僅Redis集群和主備版支持創建IPv4/IPv6雙棧實例。
IPv4/IPv6雙棧網絡的應用場景
| 應用場景 | 場景示例 | 子網 | ECS |
|---|---|---|---|
| IPv6內網通信 | 您在ECS上部署應用,需要與Redis實例之間使用IPV6進行內網互訪。 | IPv4網段 IPv6網段 |
IPv4私有地址:用于IPv4內網通信。 IPv6地址:用于IPv6內網通信。 |
| IPv6公網通信 | 您在ECS上部署應用并面向公網客戶端提供服務,支持客戶端通過IPv6地址訪問。 | IPv4網段 IPv6網段 |
IPv4私有地址+IPv4 EIP地址:用于IPv4公網通信。 IPv6地址+共享帶寬:用于IPv6公網通信。 |
操作步驟
-
登錄彈性云主機,詳情請參見《彈性云主機用戶指南》中“創建并登錄彈性云主機”的內容。
-
將Redis客戶端安裝包上傳到彈性云主機。
-
解壓客戶端工具包。
tar -xzf redis-5.0.7.tar.gz -
在“src”目錄下,連接數據庫實例。
cd redis-5.0.7 make cd src ./redis-cli -h <DB_HOST> -p <DB_PORT> -a <DB_PWD> 示例: ./redis-cli -h 192.168.xx.xx -p 8635 -a <DB_PWD>參數 說明 <DB_HOST> 待連接實例的IPv6連接地址。IPv6連接地址生成后,您可以單擊實例名稱,進入“基本信息”頁面,在網絡信息區域獲取到“IPv6連接地址”。
查看IPv6連接地址?
目前IPv6連接地址處于公測階段,如您的實例未自動生成“IPv6連接地址”,請聯系客服申請免費開通。<DB_PORT> 待連接實例的端口,一般默認為8635,具體請以實際端口為準。
獲取實例端口的方法如下:在“實例管理”頁面,單擊實例名稱,進入“基本信息”頁面,在“網絡信息> 數據庫端口”處獲取當前實例的端口信息。<DB_PWD> 創建GeminiDB Redis實例時設置的管理員密碼。 -
出現如下信息,說明連接成功。
IP:port>
程序代碼連接GeminiDB Redis
通過Jedis連接實例
由于GeminiDB Redis的“Proxy集群”架構提供了統一的負載均衡地址,并提供高可用能力,因此推薦使用JedisPool單機模式輕松接入。
此外,GeminiDB Redis對JedisSentinelPool、JedisCluster兩種模式也提供支持。
使用JedisPool的示例代碼(推薦):
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
public class JedisPoolTests {
private static void testPool() {
String pwd = "a";
JedisPool pool = new JedisPool(new GenericObjectPoolConfig(), "172.xx.xx.xx", 8635,
2000, pwd);
Jedis jedis = pool.getResource();
try {
System.out.println(jedis.hgetAll("676296"));
System.out.println(jedis.set("key1", "value1"));
} finally {
jedis.close();
}
pool.destroy();
}
public static void main(String[] args) {
testPool();
}
}
1、上述代碼中“172.xx.xx.xx”為待連接GeminiDB Redis實例的節點IP,可以是內網IP、負載均衡地址或者彈性IP,請結合實際業務場景選用。為了實現訪問的高可用,推薦您使用負載均衡地址。
以下分別是獲取負載均衡地址、內網IP或彈性IP的方法。
-
獲取負載均衡地址
- 因該功能目前處于公測階段,您可以聯系客服申請免費使用。待負載均衡地址申請創建成功后,您可以單擊實例名稱,進入“基本信息”頁面,在網絡信息區域獲取“負載均衡地址”。
-
獲取內網IP或者彈性IP
- 請參見查看IP地址和端口獲取對應節點的內網IP或者彈性IP地址。如果您創建的實例有多個節點,選擇其中任意一個節點的內網IP或彈性IP即可連接GeminiDB Redis實例。
2、上述代碼中的“8635”為待連接GeminiDB Redis實例的端口,一般默認為8635,具體請以實際端口為準。獲取端口的方法請參見查看IP地址和端口。
3、GeminiDB Redis支持與限制的命令,詳情請參見使用規范。
4、由于GeminiDB Redis和開源Redis集群計算hash算法不同,因此GeminiDB Redis的部分命令需要給對應的key打上hash tag,否則會出現非預期的行為。hash tag使用建議參考使用規范。
通過Redisson連接實例
介紹使用Java的開源庫Redisson訪問GeminiDB Redis實例的方法,主要涉及單機模式和sentinel模式連接。
使用SingleServer模式連接實例
樣例代碼 :
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
public class SingleServerTests {
private static void testSingleServer() {
Config config = new Config();
config.useSingleServer().setAddress("redis://172.xx.xx.xx:8635")
.setPassword(password);
RedissonClient redisson = Redisson.create(config);
execute(redisson); // send requests to database
redisson.shutdown();
}
public static void main(String[] args) {
testSingleServer();
}
}
1、上述代碼中“172.xx.xx.xx”為待連接GeminiDB Redis實例的節點IP,可以是內網IP、負載均衡地址或者彈性IP,請結合實際業務場景選用。為了實現訪問的高可用,推薦您使用負載均衡地址。
以下分別是獲取負載均衡地址、內網IP或彈性IP的方法。
- 獲取負載均衡地址
- 因該功能目前處于公測階段,您可以聯系客服申請免費使用。
- 待負載均衡地址申請創建成功后,您可以單擊實例名稱,進入“基本信息”頁面,在網絡信息區域獲取“負載均衡地址”。
- 獲取內網IP或者彈性IP
- 請參見 查看IP地址和端口獲取對應節點的內網IP或者彈性IP地址。如果您創建的實例有多個節點,選擇其中任意一個節點的內網IP或彈性IP即可連接GeminiDB Redis實例。
2、上述代碼中的“8635”為待連接GeminiDB Redis實例的端口,一般默認為8635,具體請以實際端口為準。獲取端口的方法請參見 查看IP地址和端口。
3、GeminiDB Redis支持與限制的命令,詳情請參見使用規范。
4、 由于GeminiDB Redis和開源Redis集群計算hash算法不同,因此GeminiDB Redis的部分命令需要給對應的key打上hash tag,否則會出現非預期的行為。hash tag使用建議參考 使用規范。
使用Sentinel模式連接實例
樣例代碼:
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import static org.redisson.config.ReadMode.MASTER;
public class SingleServerTests {
public static void testSentinel() {
Config config = new Config();
config.useSentinelServers()
.setMasterName(master_name)
.setCheckSentinelsList(false)
.setReadMode(MASTER)
.setPassword(password)
.addSentinelAddress("redis://172.xx.xx.xx:8635");
RedissonClient redisson = Redisson.create(config);
execute(redisson); // send requests to database
redisson.shutdown();
}
public static void main(String[] args) {
testSentinel();
}
}
1、 上述代碼中“172.xx.xx.xx”為待連接GeminiDB Redis實例的節點IP,可以是內網IP、負載均衡地址或者彈性IP,請結合實際業務場景選用。為了實現訪問的高可用,推薦您使用負載均衡地址。
以下分別是獲取負載均衡地址、內網IP或彈性IP的方法。
- 獲取負載均衡地址
- 因該功能目前處于公測階段,您可以聯系客服申請免費使用。
- 待負載均衡地址申請創建成功后,您可以單擊實例名稱,進入“基本信息”頁面,在網絡信息區域獲取“負載均衡地址”。
- 獲取內網IP或者彈性IP
- 請參見 查看IP地址和端口獲取對應節點的內網IP或者彈性IP地址。如果您創建的實例有多個節點,選擇其中任意一個節點的內網IP或彈性IP即可連接GeminiDB Redis實例。
2、上述代碼中的“8635”為待連接GeminiDB Redis實例的端口,一般默認為8635,具體請以實際端口為準。獲取端口的方法請參見查看IP地址和端口。
3、 GeminiDB Redis只是實現了Sentinel模式的接入方式,不采用原生sentinel的可用性功能。所以樣例代碼中,master_name固定為“mymaster”,必須設置“CheckSentinelsList”為fasle,必須設置ReadMode為MASTER。
4、 GeminiDB Redis支持與限制的命令,詳情請參見使用規范。
5、 由于GeminiDB Redis和開源Redis集群計算hash算法不同,因此GeminiDB Redis的部分命令需要給對應的key打上hash tag,否則會出現非預期的行為。hash tag使用建議參考使用規范。
通過Hiredis連接實例
主要介紹使用Hiredis訪問GeminiDB Redis實例的方法。
前提條件
- 已成功創建GeminiDB Redis實例,且實例狀態正常。
- 已創建彈性云主機,創建彈性云主機的方法,請參見《彈性云主機快速入門》中“登錄彈性云主機”章節。
- 彈性云主機上已經安裝GCC等編譯工具。
操作步驟
1、獲取GeminiDB Redis實例的內網IP地址或域名、端口。
登錄彈性云主機,具體操作請參見《彈性云主機快速入門》中“登錄彈性云主機”。
使用如下命令,下載并解壓Hiredis。
wget //github.com/redis/hiredis/archive/master.zip;
進入到解壓目錄后編譯安裝Hiredis。
make
make install
編寫測試代碼connRedisTst.cc。
說明關于Hiredis的詳細用法,請參考的使用介紹。
代碼如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <hiredis.h>
int main(int argc, char **argv) {
unsigned int j;
redisContext *conn;
redisReply *reply;
if (argc < 3) {
printf("Usage: example {instance_ip_address} 6379 {password}\n");
exit(0);
}
const char *hostname = argv[1];
const int port = atoi(argv[2]);
const char *password = argv[3];
struct timeval timeout = { 1, 500000 }; // 1.5 seconds
conn = redisConnectWithTimeout(hostname, port, timeout);
if (conn == NULL || conn->err) {
if (conn) {
printf("Connection error: %s\n", conn->errstr);
redisFree(conn);
} else {
printf("Connection error: can't allocate redis context\n");
}
exit(1);
}
/* AUTH */
reply = redisCommand(conn, "AUTH %s", password);
printf("AUTH: %s\n", reply->str);
freeReplyObject(reply);
/* Set */
reply = redisCommand(conn,"SET %s %s", "key", "hiredis test ok!");
printf("SET: %s\n", reply->str);
freeReplyObject(reply);
/* Get */
reply = redisCommand(conn,"GET key");
printf("GET key: %s\n", reply->str);
freeReplyObject(reply);
/* Disconnects and frees the context */
redisFree(conn);
return 0;
}
執行如下命令進行編譯。
gcc connRedis.c -o connRedis -I /usr/local/include/hiredis -lhiredis
如果有報錯,可查找hiredis.h文件路徑,并修改編譯命令。
編譯完后得到一個可執行文件connRedis。
執行如下命令,連接GeminiDB Redis實例。
export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH
./connRedis <redis_ip_address> 8635
其中,以下信息需按照實際情況進行替換:
- <redis_ip_address>為步驟1中獲取到的GeminiDB Redis實例的內網IP地址或域名。
- “8635”為GeminiDB Redis實例的默認端口。
為創建GeminiDB Redis實例時自定義的密碼。
返回如下回顯信息,表示成功連接GeminiDB Redis實例。
AUTH: OK
SET: OK
GET key: Hello, hiredis test ok!
通過NodeJs連接實例
主要介紹使用NodeJs訪問GeminiDB Redis實例的方法。
前提條件
- 已成功創建GeminiDB Redis實例,且實例狀態為“正常”。
- 已創建彈性云主機,創建彈性云主機的方法,請參見《彈性云主機快速入門》中“登錄彈性云主機”章節。
- 如果彈性云主機為Linux系統,該彈性云主機上必須已經安裝GCC等編譯工具。
操作步驟
獲取GeminiDB Redis實例的內網IP地址或域名、端口。
登錄彈性云主機,具體操作請參見《彈性云主機快速入門》中“登錄彈性云主機”。
安裝NodeJs。
- 方法一: 使用如下命令安裝NodeJs。
yum install nodejs
說明以CentOS(redhat系列)為例,如果是Ubuntu(debian系列),則需要使用其對應的安裝命令。
- 方法二: 如果方法一安裝不了,也可以通過如下方式進行安裝。
wget //nodejs.org/dist/v0.12.4/node-v0.12.4.tar.gz --no-check-certificate ;
tar -xvf node-v0.12.4.tar.gz;
cd node-v0.12.4;
./configure;
make;
make install;
說明以CentOS(redhat系列)為例,如果是Ubuntu(debian系列),則需要使用其對應的安裝命令。
NodeJs安裝完成后,可執行如下命令,查看其版本號,確認NodeJs已安裝成功。
node -v
安裝JS包管理工具npm。
yum install npm
安裝NodeJs redis客戶端ioredis。
npm install ioredis
編輯連接GeminiDB Redis實例的示例腳本。
var Redis = require('ioredis');
var redis = new Redis({
port: 8635, // 此處為步驟1中獲取到的GeminiDB Redis實例的端口。
host: '192.168.1.18', //此處為步驟1中獲取到的GeminiDB Redis實例的內網IP,例如:192.168.1.18。
family: 4, // 此處填寫4表示IPv4,6表示IPv6。
password: 'pwd', //此處以GeminiDB Redis實例的實際密碼為準。
db: 0
});
redis.set('key', 'Nodejs tst ok!');
redis.get('key', function (err, result) {
console.log(result);
});
運行示例腳本,確認結果正常。
node ioredisdemo.js
通過PHP連接實例
主要介紹使用PHP訪問GeminiDB Redis實例的方法。
前提條件
- 已成功創建GeminiDB Redis實例,且實例狀態為“正常”。
- 已創建彈性云主機,創建彈性云主機的方法,請參見《彈性云主機快速入門》中“登錄彈性云主機”章節。
- 彈性云主機上已經安裝GCC等編譯工具。
操作步驟
獲取GeminiDB Redis實例的內網IP地址或域名、端口。
登錄彈性云主機,具體操作請參見《彈性云主機快速入門》中“登錄彈性云主機”。
安裝PHP開發包與命令行工具。
執行如下命令,使用yum方式直接安裝。
yum install php-devel php-common php-cli
說明以CentOS(redhat系列)為例,如果是Ubuntu(debian系列),則需要使用其對應的安裝命令。
安裝完后可查看版本號,確認成功安裝。
php --version
安裝Redis的PHP客戶端。
- 下載phpredis源文件。
wget //pecl.php.net/get/redis-4.1.0RC3.tgz
說明以上是當前最新版本,也可以通過下載其他版本的phpredis客戶端。
- 解壓phpredis源文件包。
tar -zxvf redis-4.1.0RC3.tgz
cd redis-4.1.0RC3
- 編譯前先執行擴展命令。
phpize
- 配置php-config文件。
./configure --with-php-config=/usr/bin/php-config
說明不同的操作系統,安裝PHP的方式不同,該配置文件位置可能不同。建議在配置前,先確認該文件的目錄,命令如下:find / -name php.ini。
- 編譯和安裝phpredis客戶端。
make && make install
- 安裝完后在php.ini文件中增加extension配置項,用于增加redis模塊的引用配置。
使用如下命令,查找到php.ini文件:
vim /usr/local/php/etc/php.ini
在php.ini文件中,增加如下配置項:
extension = "/usr/lib64/php/modules/redis.so"
說明php.ini和redis.so兩個文件的目錄可能不同,可通過如下命令先查找確認。
find / -name php.ini
find / -name redis.so
- 保存退出后確認擴展生效。
php -m |grep redis
如果以上命令返回了redis,表示php redis客戶端環境搭建好了。
使用phpredis客戶端連接GeminiDB Redis實例。
-
編寫測試代碼redis.php。
<?php $redis_host = "192.168.1.18"; //假設redis ip為192.168.1.18 $redis_port = 8635; $user_pwd = "pwd"; $redis = new Redis(); if ($redis->connect($redis_host, $redis_port) == false) { die($redis->getLastError()); } if ($redis->auth($user_pwd) == false) { die($redis->getLastError()); } if ($redis->set("key", "php test ok!") == false) { die($redis->getLastError()); } $value = $redis->get("key"); echo $value; $redis->close(); ?> -
執行redis.php,確認結果正常。
通過Python連接實例
主要介紹使用Python訪問GeminiDB Redis實例的方法。
前提條件
- 已成功創建GeminiDB Redis實例,且實例狀態為“正常”。
- 已創建彈性云主機,創建彈性云主機的方法,請參見《彈性云主機快速入門》中“登錄彈性云主機”章節。
操作步驟
1、獲取GeminiDB Redis實例的內網IP地址或域名、端口。
登錄彈性云主機,具體操作請參見《彈性云主機快速入門》中“登錄彈性云主機”。
安裝Python和Redis的Python客戶端Redis-py。
- 如果系統沒有自帶Python,可以使用yum方式安裝。
yum install python
- 下載并解壓redis-py。
wget //github.com/andymccurdy/redis-py/archive/master.zip;
- 進入到解壓目錄后安裝Redis的Python客戶端Redis-py。
python setup.py install
- 安裝后執行python命令,返回如下信息說明成功安裝Redis-py:
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import redis
>>>
使用Redis-py客戶端連接GeminiDB Redis實例。
以下步驟以命令行模式進行示例(也可以將命令寫入python腳本中再執行):
- 執行python命令,進入命令行模式。
返回如下信息說明已進入命令行模式:
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import redis
>>>
- 在命令行中執行以下命令,確認結果正常。
>>> r = redis.StrictRedis(host='192.168.1.18', port=8635, password='pwd');
>>> r.set('key', 'Python tst ok!')
True
>>> r.get('key')
'Python tst ok!'
說明如下信息請按照實際值進行修改后,再執行上述命令。
host和port為上文中獲取到的GeminiDB Redis實例的內網IP/域名和端口。
password為GeminiDB Redis實例的密碼。
通過Go語言連接實例
主要介紹使用Go語言訪問GeminiDB Redis實例的方法。
前提條件
- 已成功創建GeminiDB Redis實例,且實例狀態為“正常”。
- 已創建彈性云主機,創建彈性云主機的方法,請參見《彈性云主機快速入門》中“登錄彈性云主機”章節。
操作步驟
獲取GeminiDB Redis實例的內網IP地址或域名、端口。
- 內網IP地址和端口的查看方法請參見 查看IP地址和端口。
- 內網域名獲取方法請參見。
登錄彈性云主機,具體操作請參見《彈性云主機快速入門》中“登錄彈性云主機”。
使用Golang客戶端連接GeminiDB Redis實例,本文以使用go-redis SDK為例。
- go-redis的下載地址為:。
- 樣例代碼:
package main
import (
"fmt"
"github.com/go-redis/redis"
)
func main() {
client := redis.NewClient(&redis.Options{
Addr: "xx.xx.xx.xx:8635", // redis address
Password: "xx", // password
DB: 0, // use default DB
})
pong, err := client.Ping().Result()
fmt.Println(pong, err)
err = client.Set("key1", "value1", 0).Err()
if err != nil {
panic(err)
}
val, err := client.Get("key1").Result()
if err != nil {
panic(err)
}
fmt.Println("key1", val)
}
預期輸出為:
PONG
key1 value1
- 使用go-redis連接GeminiDB Redis時,需要使用普通模式,不能使用集群模式,如上示例代碼所示。
- 上述實例代碼中的GeminiDB Redis地址和密碼,請根據實際情況填寫。