Skip to content

基础命令

Auth - 认证

使用密码认证 Redis 服务器:

vb
' 使用密码认证
If oRedis.Auth("mypassword") Then
    Debug.Print "认证成功"
Else
    Debug.Print "认证失败: " & oRedis.LastError
End If

SelectDb - 选择数据库

Redis 支持多个数据库(默认为 0-15):

vb
' 切换到数据库 1
If oRedis.SelectDb(1) Then
    Debug.Print "已切换到数据库 1"
End If

' 或直接设置属性
oRedis.DbIndex = 2  ' 切换到数据库 2

示例:多数据库使用

vb
' 在数据库 0 中存储用户数据
oRedis.SelectDb 0
oRedis.Set_ "user:1", "张三"
oRedis.Set_ "user:2", "李四"

' 在数据库 1 中存储配置数据
oRedis.SelectDb 1
oRedis.Set_ "config:appname", "MyApp"
oRedis.Set_ "config:version", "1.0.0"

' 切换回数据库 0
oRedis.SelectDb 0

Ping - 测试连接

测试与 Redis 服务器的连接:

vb
Dim sResult As String
sResult = oRedis.Ping()
Debug.Print sResult  ' 输出: PONG

用途:

  • 检查连接是否仍然活跃
  • 监控服务器响应时间
  • 心跳检测

Info - 获取服务器信息

获取所有信息

vb
Dim sInfo As String
sInfo = oRedis.Info()
Debug.Print sInfo

获取特定部分的信息

vb
' 获取服务器信息
sInfo = oRedis.Info("server")
Debug.Print sInfo

' 获取内存信息
sInfo = oRedis.Info("memory")

' 获取持久化信息
sInfo = oRedis.Info("persistence")

' 获取统计信息
sInfo = oRedis.Info("stats")

' 获取复制信息
sInfo = oRedis.Info("replication")

FlushDb - 清空当前数据库

清空当前数据库中的所有键:

vb
If oRedis.FlushDb() Then
    Debug.Print "数据库已清空"
Else
    Debug.Print "清空失败: " & oRedis.LastError
End If

警告:此操作不可逆,请谨慎使用!

基础键操作

Del - 删除键

vb
' 删除单个键
oRedis.Del "name"

' 删除多个键
oRedis.Del "key1", "key2", "key3"

Exists - 检查键是否存在

vb
' 检查单个键
If oRedis.Exists("name") > 0 Then
    Debug.Print "键存在"
End If

' 检查多个键
Dim lCount As Long
lCount = oRedis.Exists("key1", "key2", "key3")
Debug.Print "存在 " & lCount & " 个键"

Keys - 查找键

vb
' 查找所有键
Dim vKeys As Variant
vKeys = oRedis.Keys("*")

' 查找以 "user:" 开头的键
vKeys = oRedis.Keys("user:*")

' 查找以 "session" 结尾的键
vKeys = oRedis.Keys("*session")

' 输出所有键
Dim i As Long
If IsArray(vKeys) Then
    For i = 0 To UBound(vKeys)
        Debug.Print vKeys(i)
    Next
End If

注意: KEYS 命令在生产环境中应谨慎使用,因为它会扫描整个数据库,可能影响性能。

过期时间管理

Expire - 设置过期时间

vb
' 设置键的过期时间(秒)
oRedis.Expire "name", 300  ' 5分钟后过期

' 设置会话过期时间为 1 小时
oRedis.Expire "session:123", 3600

TTL - 获取剩余生存时间

vb
Dim lTTL As Long
lTTL = oRedis.TTL("name")

If lTTL = -1 Then
    Debug.Print "键永不过期"
ElseIf lTTL = -2 Then
    Debug.Print "键不存在"
Else
    Debug.Print "剩余 " & lTTL & " 秒"
End If

TTL 返回值说明:

  • -2:键不存在
  • -1:键存在但没有设置过期时间
  • >= 0:键的剩余生存时间(秒)

示例:完整的键管理

vb
Sub Example_KeyManagement()
    Dim oRedis As New cRedisClient

    If Not oRedis.Connect() Then
        Debug.Print "连接失败: " & oRedis.LastError
        Exit Sub
    End If

    ' 设置键值
    oRedis.Set_ "user:1001", "张三"
    oRedis.Set_ "user:1002", "李四"
    oRedis.Set_ "config:timeout", "30"

    ' 设置过期时间
    oRedis.Expire "user:1001", 3600  ' 1小时
    oRedis.Expire "user:1002", 7200  ' 2小时

    ' 查找所有用户键
    Dim vKeys As Variant
    vKeys = oRedis.Keys("user:*")
    Debug.Print "用户键数量: " & (UBound(vKeys) + 1)

    ' 检查键是否存在
    If oRedis.Exists("user:1001") > 0 Then
        Debug.Print "用户 1001 存在,剩余时间: " & oRedis.TTL("user:1001") & " 秒"
    End If

    ' 清理配置键
    oRedis.Del "config:timeout"

    ' 断开连接
    oRedis.DisConnect
End Sub

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