Redis从入门到实操:应用场景、安装配置与核心命令详解 – 实践

Redis从入门到实操:应用场景、安装配置与核心命令详解 – 实践

wget https://download.redis.io/releases/redis-6.2.13.tar.gz

解压源码包:

tar zxvf redis-6.2.13.tar.gz

1.2.3 编译并安装 Redis

进入解压后的源码目录:

cd redis-6.2.13

编译并指定安装路径(此处安装到 /usr/local/):

make && make install PREFIX=/usr/local/redis6

验证安装结果:进入安装目录的 bin 文件夹Redis从入门到实操:应用场景、安装配置与核心命令详解 – 实践,查看核心文件:

cd /usr/local/redis6/bin && ll

核心文件说明:

1.3 Redis 目录规划与配置文件

为了便于后续运维(如数据、日志、配置分离),我们单独规划 Redis 工作目录,并编写配置文件。

1.3.1 创建工作目录

创建包含 conf(配置)、data(数据)、log(日志)的目录结构:

mkdir /data/redis7001/{conf,data,log} -p

1.3.2 编写 Redis 配置文件

进入配置目录,创建并编辑 redis.conf:

cd /data/redis7001/conf && vim redis.conf

粘贴以下配置(关键参数已标注说明):

# 基础网络配置
port 7001                  # Redis 服务端口
daemonize yes              # 后台运行(守护进程模式)
# 进程与日志配置
pidfile "/data/redis7001/data/redis.pid"  # PID 文件路径(用于管理进程)
loglevel notice            # 日志级别(notice:常规信息,debug:调试信息)
logfile "/data/redis7001/log/redis.log"  # 日志文件路径
# 数据库与持久化配置
databases 16               # 支持的数据库数量(默认16个,用 select 切换)
# save 1800 1              # 注释:关闭 RDB 自动持久化(按需开启)
dbfilename "dump.rdb"      # RDB 持久化文件名
dir "/data/redis7001/data" # 数据文件(RDB/AOF)存储目录
# 内存管理配置
maxmemory 1gb              # 最大使用内存(防止内存溢出)
maxmemory-policy volatile-lru  # 内存满时策略:淘汰过期的 key
# AOF 持久化配置(按需开启)
appendonly no              # 关闭 AOF 持久化(开启设为 yes)
appendfilename "appendonly.aof"  # AOF 文件名
# 慢查询与安全配置
slowlog-log-slower-than 10000  # 慢查询阈值:超过 10ms 的命令记录
slowlog-max-len 128            # 慢查询日志最大条数
requirepass "IdfaUqTcdad82"    # Redis 访问密码(生产环境必设)

1.4 Redis 服务启动与登录

完成配置后,启动 Redis 服务并通过客户端连接。

1.4.1 启动 Redis 服务

通过指定配置文件启动:

/usr/local/redis6/bin/redis-server /data/redis7001/conf/redis.conf

验证启动结果(查看进程):

ps -ef | grep redis

若输出包含 /usr/local//bin/redis- *:7001,说明启动成功。

1.4.2 配置环境变量(可选,简化命令)

为了避免每次输入完整路径,可将 Redis 命令加入系统环境变量:

编辑环境变量文件:

vim /etc/profile

在文件末尾添加:

export PATH="/usr/local/redis6/bin:$PATH"

生效环境变量:

source /etc/profile

1.4.3 客户端登录 Redis

通过 redis-cli 连接服务,两种方式:

直接带密码登录:

redis-cli -p 7001 -a IdfaUqTcdad82

先连接再认证(更安全,避免密码暴露在命令行):

redis-cli -p 7001
127.0.0.1:7001> auth IdfaUqTcdad82  # 输入密码认证

登录成功后,提示符会变为 127.0.0.1:7001>,此时可执行 Redis 命令。

2. Redis 核心:常用数据类型及用法

Redis 支持 8 种数据类型,其中 、hash、list、set、zset 是日常开发中最常用的 5 种,另外 、、GEO 也有典型场景,以下逐一讲解其用法。

2.1 Redis 常用数据类型概览

先通过表格快速了解各类型的核心特性:

数据类型核心描述典型场景

单键单值,value 可存字符串、数字或二进制(最大 512MB)

缓存单个值、计数器

hash

键值对集合(key -> field -> value),适合存储对象

存储用户信息、商品详情

list

有序字符串列表(按插入顺序),支持两端进出

消息队列、最新消息列表

set

无序字符串集合,元素唯一,支持交集、并集运算

好友去重、标签集合

zset

有序集合(元素唯一,关联分数 score),按分数排序

排行榜、优先级队列

用于估计集合基数(不存储具体元素),占用内存极小

UV 统计(独立访客数)

位存储(0/1),按位操作,节省内存

签到记录、状态标记

GEO

存储经纬度,支持距离计算、范围查询

附近门店、地理位置排序

2.2 各数据类型实操命令

以下命令均在 Redis 客户端(127.0.0.1:7001>)中执行,代码块标注具体用法。

2.2.1 :字符串类型

核心能力:基础读写、数值增减(原子操作)。

# 1. 基础用法:设置、获取、删除
set string_test "hello redis"  # 设置 key
get string_test                # 获取 value(输出 "hello redis")
del string_test                # 删除 key
# 2. 计数功能(value 为数字时)
incr count_test                # 数值 +1(初始为 0,执行后为 1)
incrby count_test 3            # 数值 +3(执行后为 4)
decr count_test                # 数值 -1(执行后为 3)
decrby count_test 2            # 数值 -2(执行后为 1)
get count_test                 # 查看结果(输出 "1")

2.2.2 hash:哈希类型

核心能力:存储对象(如用户信息),支持单独操作字段(field)。

# 1. 设置字段(存储用户信息:user:01 为 key,name/age 为 field)
hset user:01 name "martin"
hset user:01 age 18
# 2. 获取字段值
hget user:01 name  # 输出 "martin"
hget user:01 age   # 输出 "18"
# 3. 获取所有字段和值
hgetall user:01    # 输出 1) "name" 2) "martin" 3) "age" 4) "18"
# 4. 其他常用操作
hlen user:01       # 统计字段数量(输出 2)
hkeys user:01      # 获取所有字段(输出 1) "name" 2) "age")
hdel user:01 age   # 删除 age 字段
hkeys user:01      # 验证删除(输出 1) "name")

2.2.3 list:列表类型

核心能力:有序存储redis集群视频教程,支持 LPUSH(左进)、RPUSH(右进)、LPOP(左出)、RPOP(右出)。

# 1. 插入元素(左进 + 右进)
LPUSH list_test "aaa" "bbb"  # 左进:列表变为 ["bbb", "aaa"]
RPUSH list_test "ccc"        # 右进:列表变为 ["bbb", "aaa", "ccc"]
# 2. 获取元素(范围查询)
lrange list_test 0 -1        # 获取所有元素(输出 ["bbb", "aaa", "ccc"])
lrange list_test 0 1         # 获取前 2 个元素(输出 ["bbb", "aaa"])
# 3. 元素弹出(删除并返回)
llen list_test               # 查看列表长度(输出 3)
LPOP list_test               # 左弹出 "bbb"(列表变为 ["aaa", "ccc"])
RPOP list_test               # 右弹出 "ccc"(列表变为 ["aaa"])
lrange list_test 0 -1        # 验证结果(输出 ["aaa"])

2.2.4 set:集合类型

核心能力:元素唯一(自动去重),支持交集、并集、差集运算。

# 1. 添加元素(自动去重)
sadd set_test "one" "two" "three"
sadd set_test "two"  # 重复添加,无效果
# 2. 获取所有元素
SMEMBERS set_test    # 输出 1) "one" 2) "two" 3) "three"(无序)
# 3. 判断元素是否存在
SISMEMBER set_test "one"    # 存在,输出 1
SISMEMBER set_test "four"   # 不存在,输出 0
# 4. 删除元素
srem set_test "two"
SMEMBERS set_test           # 验证:输出 1) "one" 2) "three"

2.2.5 zset:有序集合类型

核心能力:元素唯一,关联分数(score),按分数排序。

# 1. 添加元素(格式:zadd key score1 value1 score2 value2)
zadd zset_test 1 "zhangsan" 2 "lisi" 3 "wangwu"
# 2. 查看元素(按分数升序)
ZRANGE zset_test 0 -1                # 只看元素:输出 ["zhangsan", "lisi", "wangwu"]
ZRANGE zset_test 0 -1 WITHSCORES     # 看元素+分数:输出包含分数的列表
# 3. 获取元素分数
zscore zset_test "lisi"              # 输出 "2"
# 4. 删除元素
ZREM zset_test "lisi"
ZRANGE zset_test 0 -1 WITHSCORES     # 验证:输出 ["zhangsan" (1), "wangwu" (3)]
# 5. 统计元素个数
ZCARD zset_test                      # 输出 2

2.2.6 特殊数据类型://GEO

1. (基数估计)

用于统计“独立元素个数”(如 UV),占用内存仅约 12KB,适合大数据量场景:

PFADD hll_test "apple" "banana" "cherry"  # 添加元素
PFCOUNT hll_test                          # 估计基数(输出 3)
PFADD hll_test "apple"                    # 重复添加
PFCOUNT hll_test                          # 基数仍为 3(去重)

2. (位存储)

用位(0/1)表示状态,适合签到、在线状态等场景(示例:用户 1001 的签到记录):

# 设置签到:第 0 天(1=签到,0=未签)
SETBIT user:1001 0 1    # 第 0 天签到
SETBIT user:1001 1 1    # 第 1 天签到
SETBIT user:1001 2 0    # 第 2 天未签
SETBIT user:1001 4 1    # 第 4 天签到
# 查询签到状态:第 1 天是否签到
getbit user:1001 1       # 输出 1(已签)
# 统计签到次数(位值为 1 的总数)
bitcount user:1001       # 输出 3(第 0、1、4 天签到)

3. GEO(地理位置)

存储经纬度,支持距离计算、范围查询(示例:存储两个地点并计算距离):

# 添加地理位置:格式 geoadd key 经度 纬度 地点名
geoadd geo_test 20 30 "point_a" 40 60 "point_b"
# 计算两点距离:单位 km(支持 m/km/mi/ft)
geodist geo_test "point_a" "point_b" km  # 输出距离(约 4447.0083 km)
# 查询指定范围的地点:以 (25,35) 为中心,1000km 内的地点
georadius geo_test 25 35 1000 km         # 输出 ["point_a"]

3. Redis 运维:常用管理命令

掌握 Redis 运维命令,是保障服务稳定运行的关键。以下整理高频管理命令redis集群视频教程,涵盖认证、信息查看、key 操作、配置修改等场景。

3.1 基础运维:认证与信息查看3.1.1 客户端认证

若未带密码登录,需执行 auth 命令认证:

127.0.0.1:7001> auth IdfaUqTcdad82  # 输入密码,返回 OK 表示成功

3.1.2 查看 Redis 服务信息

通过 info 命令查看服务状态、内存、持久化等信息:

# 1. 查看所有信息(输出内容较多,分模块展示)
info
# 2. 查看指定模块信息(如 key 空间、内存)
info keyspace  # 查看各数据库的 key 数量(如 db0:keys=9,expires=0)
info memory    # 查看内存使用情况(如 used_memory_human:856.40K)

3.2 key 管理:查询、修改与删除3.2.1 key 查询与匹配

# 1. 先插入测试数据
set name.001 "zhangsan"
set name.002 "lisi"
set aaa "test"
# 2. 查看所有 key(生产环境慎用,数据量大时会阻塞)
keys *
# 3. 按前缀匹配(如查看 name 开头的 key)
keys name*  # 输出 1) "name.001" 2) "name.002"

3.2.2 key 批量删除(按前缀)

生产环境中redis集群视频教程,keys 匹配后删除建议用 scan(非阻塞)+ xargs:

# 格式:scan 匹配前缀 | xargs 批量删除
redis-cli -p 7001 -a IdfaUqTcdad82 --scan --pattern "name.*" | xargs -L 5000 redis-cli -p 7001 -a IdfaUqTcdad82 DEL

3.2.3 key 其他操作

# 1. 重命名 key(两种方式)
set hehe "test"
rename hehe hehe_bak          # 直接重命名(若 hehe_bak 存在则覆盖)
renamenx hehe_bak hehe_new    # 仅当 hehe_new 不存在时重命名(返回 1 成功,0 失败)
# 2. 判断 key 是否存在
exists hehe_bak  # 存在返回 1,不存在返回 0
# 3. 查看 key 类型
type hehe_bak    # 输出 "string"
# 4. 查看 key 占用内存
memory usage hehe_bak  # 输出字节数(如 48)
# 5. 设置 key 过期时间
set martin "test"
expire martin 300  # 300 秒后过期
ttl martin         # 查看剩余过期时间(输出 295,-2 表示已过期)
persist martin     # 移除过期时间(key 永久有效)

3.3 数据库管理:切换、清空与统计

# 1. 切换数据库(默认 16 个,索引 0-15)
select 2  # 切换到 db2
# 2. 在 db2 插入数据
set aaa "db2_test"
# 3. 查看当前数据库 key 数量
dbsize  # 输出 1
# 4. 清空当前数据库(db2)
flushdb  # 谨慎使用!清空后 db2 无 key
# 5. 清空所有数据库(所有 db)
flushall  # 生产环境严禁!清空 Redis 所有数据

3.4 配置修改与慢查询3.4.1 动态修改配置(无需重启)

# 1. 查看配置(如查看内存相关配置)
config get *memory*  # 输出 maxmemory、maxmemory-policy 等
# 2. 动态修改配置(如将 maxmemory 改为 2GB)
config set maxmemory 2G
# 3. 将修改写入配置文件(避免重启后失效)
config rewrite  # 需确保配置文件有写入权限

3.4.2 慢查询日志查看

慢查询日志记录超过阈值(-log–than)的命令,用于排查性能问题:

# 1. 查看慢查询日志(前 5 条)
slowlog get 5
# 2. 查看慢查询配置
config get slow*  # 输出 slowlog-log-slower-than(10000)、slowlog-max-len(128)

3.5 客户端管理与服务控制3.5.1 客户端连接管理

# 1. 查看所有客户端连接
client list  # 输出客户端 IP、端口、连接时间等信息
# 2. 强制关闭某个客户端(如 IP:42195)
client kill 127.0.0.1:42195

3.5.2 服务启动与关闭

# 1. 启动服务(指定配置文件)
/usr/local/redis6/bin/redis-server /data/redis7001/conf/redis.conf
# 2. 优雅关闭服务(登录客户端后执行)
shutdown  # 会持久化数据后关闭,避免数据丢失
# 3. 强制关闭(不推荐,可能丢失数据)
ps -ef | grep redis | grep -v grep | awk '{print $2}' | xargs kill -9

4. 总结

本文从 Redis 的应用场景出发,逐步讲解了 Redis 6.2.13 的源码编译安装、配置文件优化、核心数据类型用法及运维管理命令Redis从入门到实操:应用场景、安装配置与核心命令详解 – 实践,覆盖了从“入门理解”到“实操落地”的全流程。

对于初学者,建议先跟着本文完成安装和数据类型实操,熟悉命令后再尝试在项目中应用(如用 做缓存、用 做签到);对于运维人员,需重点掌握配置修改、慢查询排查、数据备份等命令,保障 Redis 服务稳定运行。

如果在实操中遇到问题(如启动失败、命令执行报错),可查看 Redis 日志文件(/data//log/redis.log)定位原因,或在评论区留言交流!

公告:
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299

资源库 - 资源分享下载网 » Redis从入门到实操:应用场景、安装配置与核心命令详解 – 实践

常见问题FAQ

关于资源售价和售后服务的说明?
本站所有资源的标价均为本站收集资源的辛苦费,不代表资源本身的价值。软件是高智慧高价值的商品,不可能是白菜价。本站资源标价只是赞助费用,收取的赞助费仅用来维持本站的日常运营!毕竟收集整理资料需要投入云计算资源和站长大量的精力。
代码有没有售后服务和技术支持?
由于代码的运行具有不可预见性,本站不保证代码完整可运行,不提供技术支持和售后服务。 本站原创代码都是站长自己开发的,可以有偿提供技术支持服务。 网站里标明【亲测】的代码都是站长亲测过的,其他的代码由于精力有限,没有一一测试,不能保证代码就一定能够使用,更没有技术支持服务,下载前请自行斟酌。
有没有搭建服务?
由于搭建服务比较费时费力,所以本站除了原创代码外均不提供搭建服务。本站分享代码纯属兴趣爱好,不以盈利为目的,请勿咨询有没有搭建服务,谢谢理解。
链接地址失效了怎么办?
请带上资源链接地址联系客服,工作时间内我们看到后将第一时间回复。
关于解压密码
本站资源一般都没有加密,如果发现需要解压密码的,那么就输入 hao.35dc.com 试试。

发表评论

资源库,由老程序员细心甄别、精心筛选,只为提供优质的源码资源

关于我们 联系我们