云数据库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。