本文共 2965 字,大约阅读时间需要 9 分钟。
安装 Redis 是使用现代应用开发中不可或缺的存储系统之一。以下是 Redis 的安装步骤:
下载 Redis
访问 Redis 官方下载页面 http://redis.io/download,获取最新版本的 Redis 源码包。解压源码
将下载的redis-版本号.tar.gz 解压到 /usr/local 目录下:wget http://download.redis.io/releases/redis-5.x.x.tar.gztar xf redis-5.x.x.tar.gzcd redis-5.x.x
编译与安装
在解压目录下,运行以下命令编译并安装:make
配置 Redis
Editar el archivo de configuración que se encuentra en el directorio del paquete:cp redis.conf /etc/redis/redis.conf
daemonize yes:启用后台运行模式。protected-mode no:取消限制访问,允许其他机器访问(通常用于测试环境)。bind 127.0.0.1 以支持多网卡接口访问。启动服务
运行以下命令启动 Redis 服务:src/redis-server redis.conf
验证运行状态
查看进程列表确认 Redis 是否运行:ps -ef | grep redis
连接测试
使用 Redis客户端工具进行测试:src/redis-cliquit # 退出客户端
停止服务
停止 Redis 服务有以下方式:pkill 命令:pkill -f redis-server
kill -f $(pidof redis-server)
src/redis-cli shutdown
Redis 提供了多种核心数据结构,包括 String、Hash、List 和 Set 等,每种数据结构有其特定的应用场景。
Redis String 是最基础的数据结构
SET key value:将键值对存入 Redis。MSET key [key ...] value [value ...]:批量存储多个键值对。SETNX key value:存入不存在的键值对,并返回布尔值(1 表示成功)。GET key:获取键对应的字符串值。MGET key [key ...]:批量获取多个键的字符串值。DEL key [key ...]:删除指定的键值对。EXPIRE key seconds:设置键的过期时间(单位为秒)。INCR key 和 DECR key:实现原子加减操作。SET user:$_id "${json_data}"批量存储:
MSET user:$userId:prop1 "prop1Value" user:$userId:prop2 "prop2Value"
获取:
MGET user:$userId:prop1 user:$userId:prop2
SETNX lock:$_item true
业务完成后删除锁:
DEL lock:$_item
INCR page:$articleId: readsGET page:$articleId: reads
Redis Hash 是 προhtable 键值对的集合,支持动态键 #
HMSET user:$id name "张三" balance 1888
HSET cart:$userId product:$_id 1
SINTER brand:$_brand size:$_size
Redis 采用单线程架构,但由于所有操作都在内存中完成,避免了磁盘 IO 的延迟开销。命令执行全由单线程处理,尽管其他任务如持久化和主从同步由其他线程完成,但核心流程的线程模型保证了其速度。
Redis 使用 NIO 权力模块实现 IO 多路复用,利用 epoll 模型将多个客户端连接轮询处理。这种方式在处理大量客户端时显著提升了性能,避免了线程切换的开销。
keys *命令keys * 指令会阻塞主线程,导致性能严重下降。开发者应避免使用此类全量扫描命令,改用 scan 渐进式遍历实现精准操作。
SCANRedis 提供 SCAN 命令用于逐页遍历数据库键值对。其参数包括:
cursor 游标值,用于标识当前遍历位置。match 规则表达式,可用于筛选特定模式的键。count 每次返回的元素数量。注意:SCAN 命令不是完全精确,可能会遗漏部分键值对,适用于需要迭代处理但不强依赖全局状态的场景。
集合结构支持丰富的集合运算,如:
SINTER) 及并集 (SUNION)SINTER set1 set2 Result → 交集元素SUNION set1 set2 Result → 合并后的元素
SDIFF)SDIFF set1 set2 set3 … Result → set1 与其他集合的差集
SMEMBERS, SCARD)获取集合元素及其数量。ZSet(有序集合)用于实现分布式排行榜:
ZADD sorted_set key score
ZREVRANGE sorted_set start stop WITHSCORES
ZINCRBY hotNews:$(date +%s) 1 # 添加新闻ZREVRANGE hotNews:$(日期范围) 0 9 WITHSCORES # 获取前十名
通过以上内容,可以清晰理解 Redis 的核心功能及其应用场景,并能够根据实际需求选择合适的数据结构和操作方式。
转载地址:http://vlinz.baihongyu.com/