Skip to content

连接管理

基本连接

连接到本地 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 Sub

OnError - 错误事件

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 Sub

2. 错误处理

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 Sub

3. 连接池示例

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

VB6及其LOGO版权为微软公司所有