连接管理
基本连接
连接到本地 Redis 服务器
vb
Dim oRedis As New cRedisClient
' 连接到本地 Redis 服务器
If oRedis.Connect() Then
Debug.Print "连接成功!"
Else
Debug.Print "连接失败: " & oRedis.LastError
End If连接到指定服务器
vb
Dim oRedis As New cRedisClient
' 连接到指定地址和端口
If oRedis.Connect("192.168.1.100", 6379) Then
Debug.Print "连接成功!"
End If带密码认证的连接
vb
Dim oRedis As New cRedisClient
' 连接并使用密码认证
If oRedis.Connect("127.0.0.1", 6379, "mypassword") Then
Debug.Print "连接成功!"
End If设置超时时间
vb
Dim oRedis As New cRedisClient
' 设置超时时间为 10 秒
oRedis.Timeout = 10
If oRedis.Connect() Then
Debug.Print "连接成功!"
End If断开连接
vb
oRedis.DisConnect连接状态检查
在执行操作前检查连接状态:
vb
If Not oRedis.Connected Then
Debug.Print "未连接到 Redis 服务器"
' 尝试重新连接
If Not oRedis.Connect() Then
Debug.Print "重连失败: " & oRedis.LastError
Exit Sub
End If
End If事件处理
OnDisconnected - 连接断开事件
vb
' 在类模块中声明 WithEvents 变量
Private WithEvents m_oRedis As cRedisClient
Private Sub m_oRedis_OnDisconnected()
Debug.Print "Redis 连接已断开"
' 可以在这里实现重连逻辑
End SubOnError - 错误事件
vb
Private Sub m_oRedis_OnError(ByVal ErrorMsg As String)
Debug.Print "Redis 错误: " & ErrorMsg
' 可以在这里实现错误处理逻辑
End Sub连接最佳实践
1. 使用 Using 模式
vb
Sub DoRedisWork()
Dim oRedis As New cRedisClient
If Not oRedis.Connect() Then
Debug.Print "连接失败"
Exit Sub
End If
' 执行操作
oRedis.Set_ "key", "value"
' 确保断开连接
oRedis.DisConnect
Set oRedis = Nothing
End Sub2. 错误处理
vb
Sub SafeRedisOperation()
Dim oRedis As New cRedisClient
On Error GoTo ErrorHandler
If Not oRedis.Connect() Then
Debug.Print "连接失败: " & oRedis.LastError
Exit Sub
End If
' 执行操作
oRedis.Set_ "key", "value"
' 检查错误
If oRedis.LastError <> "" Then
Debug.Print "操作出错: " & oRedis.LastError
End If
Exit Sub
ErrorHandler:
Debug.Print "发生错误: " & Err.Description
If oRedis.Connected Then
oRedis.DisConnect
End If
End Sub3. 连接池示例
vb
' 简单的连接管理器示例
Private m_oRedis As cRedisClient
Function GetRedisConnection() As cRedisClient
If m_oRedis Is Nothing Then
Set m_oRedis = New cRedisClient
If Not m_oRedis.Connect() Then
Debug.Print "创建连接失败: " & m_oRedis.LastError
Set GetRedisConnection = Nothing
Exit Function
End If
End If
' 检查连接是否仍然有效
If Not m_oRedis.Connected Then
If Not m_oRedis.Connect() Then
Debug.Print "重连失败: " & m_oRedis.LastError
Set GetRedisConnection = Nothing
Exit Function
End If
End If
Set GetRedisConnection = m_oRedis
End Function
Sub CloseRedisConnection()
If Not m_oRedis Is Nothing Then
m_oRedis.DisConnect
Set m_oRedis = Nothing
End If
End Sub