[特殊字符] Redis 从入门到精通:开发者必备的高性能缓存数据库

📖 一、Redis 简介

Redis 是一个开源的高性能键值对(Key-Value)数据库,数据完全存储在内存中,可持久化到磁盘,支持多种数据结构。

  • 主要特点
    ✅ 极快读写速度(10万+ QPS)
    ✅ 支持丰富数据类型(String、Hash、List、Set、ZSet)
    ✅ 内置发布/订阅机制
    ✅ 支持事务与持久化

常用于:

  • 数据缓存

  • 分布式锁

  • 消息队列

  • 排行榜系统


🛠️ 二、Redis 安装与启动

1. Linux 安装(以 Ubuntu 为例)

 

bash

复制编辑

# 更新软件源 sudo apt update # 安装 Redis sudo apt install redis-server -y # 启动 Redis sudo systemctl start redis # 设置开机自启 sudo systemctl enable redis # 检查 Redis 是否运行 redis-cli ping # 输出:PONG


2. Windows 安装

  1. 下载 Windows 版本:https://github.com/MicrosoftArchive/redis/releases

  2. 解压并运行 redis-server.exe


📝 三、Redis 基础命令

1. 字符串 (String)

 

bash

复制编辑

# 设置 key SET name "优快云用户" # 获取 key GET name # 删除 key DEL name # 设置 key 过期时间(单位秒) SETEX temp 60 "临时数据"


2. 哈希 (Hash)

 

bash

复制编辑

# 设置哈希字段 HSET user:1 name "张三" HSET user:1 age 28 # 获取哈希字段 HGET user:1 name # 获取所有字段 HGETALL user:1


3. 列表 (List)

 

bash

复制编辑

# 从左插入 LPUSH queue task1 LPUSH queue task2 # 从右取出 RPOP queue


4. 集合 (Set)

 

bash

复制编辑

# 添加元素 SADD tags redis SADD tags database # 获取所有元素 SMEMBERS tags # 判断元素是否存在 SISMEMBER tags redis


5. 有序集合 (Sorted Set)

 

bash

复制编辑

# 添加元素及分数 ZADD ranking 100 张三 ZADD ranking 120 李四 # 按分数排序获取 ZRANGE ranking 0 -1 WITHSCORES


🌟 四、Redis 高级功能

1. 发布/订阅

订阅消息

 

bash

复制编辑

SUBSCRIBE news

发布消息

 

bash

复制编辑

PUBLISH news "Redis 发布订阅功能"


2. 持久化配置

Redis 支持两种持久化机制:
✅ RDB(快照存储)
✅ AOF(追加日志)

修改配置文件 /etc/redis/redis.conf 启用持久化。


3. 事务操作

 

bash

复制编辑

MULTI SET count 1 INCR count EXEC


4. 设置分布式锁

cez.wang

cek.wang

ckf.wang

cvr.wang

baige.wang

duocheng.net.cn

fskunba.cn

qdjgx.cn

englishatames.cn

dggn.cn

300367.cn

v8zs.cn

syh360.cn

abc030.cn

tschwl.cn

artbt.cn

itjpg.cn

cscwbit.cn

jhswmly.cn

tjguakao.cn

bash

复制编辑

SET lock:order 1 NX EX 10

  • NX:仅当 key 不存在时设置

  • EX 10:10 秒过期


🚀 五、实战案例:使用 Redis 缓存用户数据

场景:查询用户信息,如果缓存存在则直接返回,否则从数据库查询并缓存。

Python 代码示例

 

python

复制编辑

import redis # 连接 Redis r = redis.Redis(host='localhost', port=6379, decode_responses=True) def get_user(user_id): key = f"user:{user_id}" # 先查缓存 user = r.get(key) if user: print("从缓存获取:", user) return user else: # 模拟数据库查询 user = {"id": user_id, "name": "张三"} print("从数据库获取:", user) # 缓存数据 60 秒 r.setex(key, 60, str(user)) return user get_user(1) get_user(1) # 第二次将从缓存返回


🛡️ 六、常见问题排查

问题解决方法
MISCONF Redis is configured to save RDB snapshots检查磁盘空间,修改 save 配置
Maxmemory reached配置内存淘汰策略:maxmemory-policy allkeys-lru
无法远程连接修改 bind 127.0.0.10.0.0.0 并关闭防火墙


🌿 七、高效技巧

查看内存使用

 

bash

复制编辑

INFO memory

查看键过期时间

 

bash

复制编辑

TTL key

批量删除以某前缀开头的 key

 

bash

复制编辑

redis-cli --scan --pattern "temp:*" | xargs redis-cli del

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值