redis

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Redis Data Structures

Redis 数据结构

Getting Started

快速开始

bash
undefined
bash
undefined

Start Redis server

启动Redis服务器

redis-server
redis-server

Connect to Redis CLI

连接到Redis命令行界面

redis-cli
redis-cli

Test connection

测试连接

ping # Returns "PONG"
ping # 返回 "PONG"

Select database

选择数据库

SELECT 0 # Default database SELECT 1 # Database 1
undefined
SELECT 0 # 默认数据库 SELECT 1 # 数据库1
undefined

String Operations

字符串操作

// SET and GET
SET key value
SET user:1:name "John Doe"
GET user:1:name

// SET with options
SET key value EX 3600             // Expire in 3600 seconds
SET key value PX 3600000          // Expire in milliseconds
SET key value NX                  // Only if not exists
SET key value XX                  // Only if exists

// Numeric operations
SET counter 0
INCR counter              // Increment by 1
INCRBY counter 5          // Increment by N
DECR counter              // Decrement by 1
DECRBY counter 3          // Decrement by N
INCRBYFLOAT counter 2.5   // Increment by float

// String operations
APPEND key " suffix"      // Append to string
STRLEN key                // Get length
GETRANGE key 0 3          // Get substring
SETRANGE key 0 "new"      // Set substring

// Multiple keys
MSET key1 val1 key2 val2  // Set multiple
MGET key1 key2            // Get multiple
GETSET key newval         // Get old value and set new
// 设置与获取
SET key value
SET user:1:name "John Doe"
GET user:1:name

// 带选项的设置
SET key value EX 3600             // 3600秒后过期
SET key value PX 3600000          // 毫秒级过期(3600000毫秒)
SET key value NX                  // 仅当键不存在时设置
SET key value XX                  // 仅当键存在时设置

// 数值操作
SET counter 0
INCR counter              // 自增1
INCRBY counter 5          // 自增指定数值N
DECR counter              // 自减1
DECRBY counter 3          // 自减指定数值N
INCRBYFLOAT counter 2.5   // 自增浮点数

// 字符串操作
APPEND key " suffix"      // 追加字符串
STRLEN key                // 获取字符串长度
GETRANGE key 0 3          // 获取子字符串
SETRANGE key 0 "new"      // 设置子字符串

// 多键操作
MSET key1 val1 key2 val2  // 批量设置多个键值对
MGET key1 key2            // 批量获取多个键值
GETSET key newval         // 获取旧值并设置新值

List Operations (Ordered collections)

列表操作(有序集合)

// Push operations
LPUSH list value1 value2    // Push to left
RPUSH list value1 value2    // Push to right
LPUSHX list value           // Push only if exists
RPUSHX list value           // Push only if exists

// Pop operations
LPOP list                   // Remove and get from left
RPOP list                   // Remove and get from right
LPOP list 2                 // Pop multiple (Redis 6.2+)

// List queries
LRANGE list 0 -1            // Get all elements
LRANGE list 0 2             // Get first 3 elements
LINDEX list 1               // Get element at index
LLEN list                   // Get list length
LSET list 0 newvalue        // Set element at index

// Blocking operations
BLPOP list1 list2 10        // Block until pop or timeout
BRPOP list1 list2 10        // Block until right pop
BRPOPLPUSH src dst 10       // Block, pop right, push left

// Trimming
LTRIM list 0 2              // Keep only first 3 elements
// 推入操作
LPUSH list value1 value2    // 从左侧推入元素
RPUSH list value1 value2    // 从右侧推入元素
LPUSHX list value           // 仅当列表存在时从左侧推入
RPUSHX list value           // 仅当列表存在时从右侧推入

// 弹出操作
LPOP list                   // 从左侧移除并获取元素
RPOP list                   // 从右侧移除并获取元素
LPOP list 2                 // 批量弹出多个元素(Redis 6.2+)

// 列表查询
LRANGE list 0 -1            // 获取所有元素
LRANGE list 0 2             // 获取前3个元素
LINDEX list 1               // 获取指定索引位置的元素
LLEN list                   // 获取列表长度
LSET list 0 newvalue        // 设置指定索引位置的元素

// 阻塞操作
BLPOP list1 list2 10        // 阻塞直到弹出元素或超时
BRPOP list1 list2 10        // 阻塞直到右侧弹出元素或超时
BRPOPLPUSH src dst 10       // 阻塞、从右侧弹出、推入左侧

// 修剪操作
LTRIM list 0 2              // 仅保留前3个元素

Hash Operations (Maps/objects)

哈希操作(映射/对象)

// SET and GET
HSET hash field value       // Set single field
HSET hash f1 v1 f2 v2       // Set multiple fields
HGET hash field             // Get field value
HGETALL hash                // Get all fields and values

// Existence and length
HEXISTS hash field          // Check field exists
HLEN hash                   // Number of fields
HKEYS hash                  // Get all field names
HVALS hash                  // Get all values
HSTRLEN hash field          // Get value length

// Update operations
HINCRBY hash field 5        // Increment numeric field
HINCRBYFLOAT hash field 2.5 // Increment by float
HSETNX hash field value     // Set only if not exists

// Delete
HDEL hash field1 field2     // Delete fields
// 设置与获取
HSET hash field value       // 设置单个字段
HSET hash f1 v1 f2 v2       // 批量设置多个字段
HGET hash field             // 获取指定字段的值
HGETALL hash                // 获取所有字段和对应值

// 存在性与长度检查
HEXISTS hash field          // 检查字段是否存在
HLEN hash                   // 获取字段数量
HKEYS hash                  // 获取所有字段名
HVALS hash                  // 获取所有字段值
HSTRLEN hash field          // 获取字段值的长度

// 更新操作
HINCRBY hash field 5        // 对数值字段进行自增
HINCRBYFLOAT hash field 2.5 // 对数值字段进行浮点数自增
HSETNX hash field value     // 仅当字段不存在时设置

// 删除操作
HDEL hash field1 field2     // 删除指定字段

Set Operations (Unordered unique values)

集合操作(无序唯一值)

// Add and remove
SADD set member1 member2    // Add members
SREM set member1 member2    // Remove members
SISMEMBER set member        // Check membership
SMEMBERS set                // Get all members
SCARD set                   // Count members

// Set operations
SINTER set1 set2            // Intersection
SUNION set1 set2            // Union
SDIFF set1 set2             // Difference
SINTERSTORE dest s1 s2      // Store intersection result
SUNIONSTORE dest s1 s2      // Store union result
SDIFFSTORE dest s1 s2       // Store difference result

// Pop operations
SPOP set                    // Remove and return random member
SPOP set 2                  // Remove and return N members
SRANDMEMBER set             // Get random member without removing
SRANDMEMBER set 3           // Get N random members
// 添加与移除
SADD set member1 member2    // 添加成员
SREM set member1 member2    // 移除成员
SISMEMBER set member        // 检查成员是否存在
SMEMBERS set                // 获取所有成员
SCARD set                   // 统计成员数量

// 集合运算
SINTER set1 set2            // 求交集
SUNION set1 set2            // 求并集
SDIFF set1 set2             // 求差集
SINTERSTORE dest s1 s2      // 将交集结果存储到目标集合
SUNIONSTORE dest s1 s2      // 将并集结果存储到目标集合
SDIFFSTORE dest s1 s2       // 将差集结果存储到目标集合

// 弹出操作
SPOP set                    // 随机移除并返回一个成员
SPOP set 2                  // 随机移除并返回N个成员
SRANDMEMBER set             // 随机获取一个成员(不移除)
SRANDMEMBER set 3           // 随机获取N个成员(不移除)

Sorted Set Operations (Ordered by score)

有序集合操作(按分数排序)

// Add and remove
ZADD zset 1 member1 2 member2    // Add with scores
ZREM zset member1                // Remove members
ZCARD zset                       // Count members
ZSCORE zset member               // Get score

// Range queries by score
ZRANGE zset 0 -1                 // Get all by index
ZRANGE zset 0 -1 WITHSCORES      // With scores
ZREVRANGE zset 0 -1              // Reverse order
ZREVRANGE zset 0 -1 WITHSCORES   // Reverse with scores

ZRANGEBYSCORE zset 10 50         // Get by score range
ZRANGEBYSCORE zset -inf +inf     // All scores
ZRANGEBYSCORE zset 10 50 LIMIT 0 5  // Pagination

// Score operations
ZINCRBY zset 5 member            // Increment score
ZCOUNT zset 10 50                // Count in score range

// Rank queries
ZRANK zset member                // Get rank (0-based)
ZREVRANK zset member             // Get reverse rank
// 添加与移除
ZADD zset 1 member1 2 member2    // 带分数添加成员
ZREM zset member1                // 移除成员
ZCARD zset                       // 统计成员数量
ZSCORE zset member               // 获取成员的分数

// 按分数范围查询
ZRANGE zset 0 -1                 // 按索引获取所有成员
ZRANGE zset 0 -1 WITHSCORES      // 按索引获取所有成员及分数
ZREVRANGE zset 0 -1              // 按索引倒序获取所有成员
ZREVRANGE zset 0 -1 WITHSCORES   // 按索引倒序获取所有成员及分数

ZRANGEBYSCORE zset 10 50         // 按分数范围获取成员
ZRANGEBYSCORE zset -inf +inf     // 获取所有分数范围内的成员
ZRANGEBYSCORE zset 10 50 LIMIT 0 5  // 分页获取分数范围内的成员

// 分数操作
ZINCRBY zset 5 member            // 对成员分数进行自增
ZCOUNT zset 10 50                // 统计指定分数范围内的成员数量

// 排名查询
ZRANK zset member                // 获取成员排名(从0开始)
ZREVRANK zset member             // 获取成员倒序排名

Key Operations

键操作

// Key management
KEYS pattern                // Find keys matching pattern
EXISTS key1 key2            // Check key existence
DEL key1 key2               // Delete keys
UNLINK key1 key2            // Async delete
TYPE key                    // Get key type

// Expiration
EXPIRE key 3600             // Set expiration (seconds)
PEXPIRE key 3600000         // Set expiration (milliseconds)
TTL key                     // Get TTL (seconds)
PTTL key                    // Get TTL (milliseconds)
PERSIST key                 // Remove expiration

// Renaming
RENAME oldkey newkey        // Rename key
RENAMENX oldkey newkey      // Rename only if new doesn't exist
// 键管理
KEYS pattern                // 查找匹配模式的键
EXISTS key1 key2            // 检查键是否存在
DEL key1 key2               // 删除键
UNLINK key1 key2            // 异步删除键
TYPE key                    // 获取键的类型

// 过期设置
EXPIRE key 3600             // 设置键的过期时间(秒)
PEXPIRE key 3600000         // 设置键的过期时间(毫秒)
TTL key                     // 获取键的剩余过期时间(秒)
PTTL key                    // 获取键的剩余过期时间(毫秒)
PERSIST key                 // 移除键的过期时间

// 重命名
RENAME oldkey newkey        // 重命名键
RENAMENX oldkey newkey      // 仅当新键不存在时重命名

Transactions & Atomicity

事务与原子性

// Transaction execution
MULTI                       // Start transaction
SET key1 value1
INCR key2
GET key3
EXEC                        // Execute all commands atomically

// Discard transaction
MULTI
SET key value
DISCARD                     // Cancel transaction

// Watch keys
WATCH key1 key2             // Monitor keys for changes
MULTI
SET key1 newvalue
EXEC                        // Fails if keys changed
// 事务执行
MULTI                       // 开启事务
SET key1 value1
INCR key2
GET key3
EXEC                        // 原子性执行所有命令

// 取消事务
MULTI
SET key value
DISCARD                     // 取消事务

// 监听键
WATCH key1 key2             // 监控键的变化
MULTI
SET key1 newvalue
EXEC                        // 如果键发生变化则执行失败

Pub/Sub Messaging

发布/订阅消息

// Publisher
PUBLISH channel "message"   // Publish to channel

// Subscriber
SUBSCRIBE channel1 channel2 // Subscribe to channels
PSUBSCRIBE pattern*         // Subscribe to pattern
UNSUBSCRIBE channel         // Unsubscribe
PUNSUBSCRIBE pattern        // Unsubscribe from pattern

// Query subscriptions
PUBSUB CHANNELS             // Active channels
PUBSUB NUMSUB ch1 ch2       // Subscribers per channel
PUBSUB NUMPAT               // Pattern subscriptions count
// 发布者
PUBLISH channel "message"   // 向频道发布消息

// 订阅者
SUBSCRIBE channel1 channel2 // 订阅指定频道
PSUBSCRIBE pattern*         // 订阅匹配模式的频道
UNSUBSCRIBE channel         // 取消订阅指定频道
PUNSUBSCRIBE pattern        // 取消订阅匹配模式的频道

// 查询订阅信息
PUBSUB CHANNELS             // 获取活跃频道列表
PUBSUB NUMSUB ch1 ch2       // 获取指定频道的订阅者数量
PUBSUB NUMPAT               // 获取模式订阅的数量

Server Commands

服务器命令

DBSIZE                      // Total keys in DB
FLUSHDB                     // Clear current DB
FLUSHALL                    // Clear all DBs
SAVE                        // Synchronous save
BGSAVE                      // Background save
LASTSAVE                    // Last save time
INFO                        // Server statistics
CONFIG GET parameter        // Get config value
CONFIG SET parameter value  // Set config value
DBSIZE                      // 获取当前数据库的键总数
FLUSHDB                     // 清空当前数据库
FLUSHALL                    // 清空所有数据库
SAVE                        // 同步保存数据到磁盘
BGSAVE                      // 后台异步保存数据到磁盘
LASTSAVE                    // 获取最后一次保存的时间
INFO                        // 获取服务器统计信息
CONFIG GET parameter        // 获取配置参数值
CONFIG SET parameter value  // 设置配置参数值

Next Steps

下一步

Learn Redis patterns for caching, sessions, rate limiting, and real-time applications in the
redis-patterns
skill.
redis-patterns
技能中学习Redis在缓存、会话、限流和实时应用中的使用模式。