简介:本文旨在帮助开发者在半小时内快速了解Redis的核心概念、应用场景及常用命令,通过结构化讲解与实操示例,让读者高效掌握Redis的基础操作与实用技巧。
Redis(Remote Dictionary Server)作为一款开源的内存数据库,凭借其高性能、多数据结构支持和丰富的应用场景,已成为开发者技术栈中的“标配工具”。其核心优势体现在两方面:
典型应用场景包括:
Redis支持5种核心数据结构,每种结构对应不同的业务场景:
INCR page_view)。HSET user:1 name "Alice" age 25)。LPUSH tasks "task1")。SADD tags "tech" "redis")。ZADD leaderboard 100 "Alice")。为防止内存数据丢失,Redis提供两种持久化方案:
通过主从复制(Master-Slave)和哨兵模式(Sentinel),Redis可实现故障自动转移:
# 配置从节点复制主节点SLAVEOF 192.168.1.100 6379
集群模式(Cluster)则支持水平扩展,将数据分散到多个节点,突破单机内存限制。
KEYS *:列出所有键(生产环境慎用,可能阻塞服务)。DBSIZE:获取当前数据库键数量。FLUSHDB:清空当前数据库(谨慎操作!)。
SET key value [EX seconds] # 设置键值,可选过期时间GET key # 获取值SETNX key value # 仅当键不存在时设置(分布式锁基础)MSET k1 v1 k2 v2 # 批量设置MGET k1 k2 # 批量获取
HSET user:1 name "Bob" age 30 # 设置字段HGETALL user:1 # 获取所有字段HINCRBY user:1 score 10 # 字段数值增加
LPUSH list "item1" "item2" # 从左侧插入RPOP list # 从右侧弹出LRANGE list 0 -1 # 获取全部元素
Redis通过MULTI/EXEC实现事务,或使用Lua脚本保证原子性:
MULTISET k1 "v1"SET k2 "v2"EXEC
Lua脚本示例(原子性计数器):
-- counter.lualocal current = redis.call("GET", KEYS[1])if current == false thencurrent = 0elsecurrent = tonumber(current)endcurrent = current + tonumber(ARGV[1])redis.call("SET", KEYS[1], current)return current
执行命令:
EVAL "脚本内容" 1 counter_key 5 # 对counter_key增加5
docker run -d --name redis -p 6379:6379 redis
redis-cli逐条测试常用命令,观察返回值。MEMORY PURGE或重启实例。max-active=50),防止连接耗尽。通过本文,您已掌握Redis的核心概念、数据结构及常用命令。下一步建议:
Redis的学习并非一蹴而就,但掌握基础命令与核心思想后,您已具备解决80%常见问题的能力。立即动手实践,让Redis成为您技术武器的“利刃”!