云数据库Redis与原生Redis完全兼容,连接数据库的方式也基本相同,您可以根据自身应用特点选用任何兼容Redis协议的客户端程序。本文列举一些常见的客户端程序的代码示例,帮助您快速连接。
前提条件
| 客户端程序部署位置 | 需完成的操作 |
|---|---|
| ECS实例(推荐) |
|
| 本地 |
注意事项
如何获取连接信息
在使用客户端程序连接Redis实例时,通常您需要获取以下信息并设置在代码中:
| 需获取的信息 | 获取方式 |
|---|---|
| 实例的连接地址 | Redis实例支持多种连接地址,推荐使用专有网络连接,可获得更高的安全性和更低的网络延迟。更多信息,请参见查看连接地址。 |
| 端口号 | 端口号默认为6379,您也可以自定义端口号。具体操作,请参见修改连接地址或端口。 |
| 实例的账号(部分客户端程序无需设置) | Redis实例默认会创建一个以实例ID命名的账号(例如r-bp10noxlhcoim2****),您也可以创建一个新的账号并赋予权限。更多信息,请参见创建与管理账号。 |
| 账号的密码 | 根据选取账号的不同,密码的填写格式有一定区别:
说明 如果忘记密码,请参见
修改或重置密码。
|
常见客户端程序
关于Redis支持的客户端列表,请参见Redis Clients。
说明
Jedis客户端
说明 企业版(
性能增强型)推荐使用
TairJedis客户端。
警告 在使用Jedis的过程中,如果设置了一些不合理的参数或错误使用某些功能可能会引起报错,关于如何排查,请参见
Jedis常见异常汇总。
TairJedis客户端
TairJedis是阿里云基于Jedis开发的Redis企业版专用客户端,除了Jedis的原有功能,还支持Redis企业版数据结构模块包含的命令。
说明 关于如何获取Redis实例的连接地址和密码,请参见
如何获取连接信息。
更多信息,请参见tairjedis-sdk。
PhpRedis客户端
说明 如果遇到客户端程序提示错误:
Cannot assign requested address,原因分析及排查方法,请参见
使用短连接访问Redis出现“Cannot assign requested address”错误。
redis-py客户端
C或C++客户端
.net客户端
node-redis客户端
C#客户端StackExchange.Redis
Go-redis客户端
package main
import (
"github.com/go-redis/redis"
"fmt"
)
func ExampleClient() {
client := redis.NewClient(&redis.Options{
// 替换为实例的连接地址和端口
Addr: "r-bp10noxlhcoim2****.redis.rds.aliyuncs.com:6379",
// 替换为实例的密码
Password: "testaccount:Rp829dlwa",
DB: 0, // use default DB
})
// 下述代码为您提供SET与GET的使用示例。
err := client.Set("foo", "bar", 0).Err()
if err != nil {
panic(err)
}
val, err := client.Get("foo").Result()
if err != nil {
panic(err)
}
fmt.Println("set : foo -> ", val)
}
func main() {
ExampleClient()
}
package main
import (
"github.com/go-redis/redis"
"fmt"
)
func ExampleClient() {
client := redis.NewClient(&redis.Options{
// 替换为实例的连接地址和端口
Addr: "r-bp10noxlhcoim2****.redis.rds.aliyuncs.com:6379",
// 替换为实例的密码
Password: "testaccount:Rp829dlwa", // no password set
DB: 0, // use default DB
})
err := client.Set("foo", "bar", 0).Err()
if err != nil {
panic(err)
}
val, err := client.Get("foo").Result()
if err != nil {
panic(err)
}
fmt.Println("set : foo -> ", val)
// 下述代码为您提供数据结构模块(如TairString)的使用示例
res, err := client.Do("CAS", "foo", "bar", "bzz").Result()
fmt.Println("CAS : ", res)
res, err = client.Do("CAD", "foo", "bzz").Result()
fmt.Println("CAD : "res)
res, err = client.Do("EXSET", "foo", "200", "VER", "1").Result()
fmt.Println("EXSET : ", res)
res, err = client.Do("EXSET", "foo", "300", "VER", "10").Result()
if err != nil {
fmt.Println(err)
}
fmt.Println("EXSET : ", res)
res, err = client.Do("EXCAS", "foo", "300", "1").Result()
fmt.Println("EXCAS : ", res)
}
func main() {
ExampleClient()
}
说明
- 关于如何获取Redis实例的连接地址和密码,请参见如何获取连接信息。
- 对于企业版(性能增强型)实例,您可以单击上方的企业版Tair示例页签,查看数据结构模块(如TairString)的使用示例。关于数据结构模块的相关介绍,请参见企业版(性能增强型)支持的新命令。
Lettuce客户端
Lettuce支持完整Redis API的同步和异步通信使用。由于Lettuce客户端在请求多次请求超时后,不再自动重连,当云数据库Redis因故障等因素导致代理或者数据库节点发生切换时,可能出现连接超时导致无法重连。为避免此类风险,推荐您使用Jedis客户端。
说明 关于如何获取Redis实例的连接地址和密码,请参见
如何获取连接信息。
更多信息,请参见Lettuce。

