《保姆级Redis教程:安装配置+数据类型+命令大全,这一篇就够了》

《保姆级Redis教程:安装配置+数据类型+命令大全,这一篇就够了》

《保姆级Redis教程:安装配置+数据类型+命令大全,这一篇就够了》《保姆级Redis教程:安装配置+数据类型+命令大全,这一篇就够了》

前言:前面我们实现了项目的诸多功能,这里我们将实现项目的另一些功能,不过要学习一些前置知识–Redis

Redis(Remote Dictionary Server)是一个开源的内存数据结构存储系统,它可以用作数据库、缓存和消息中间件。Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value存储系统。

核心特点

内存存储与持久化

数据主要存储在内存中,读写速度极快(每秒可处理10万+次读写操作)

支持RDB和AOF两种持久化方式,防止数据丢失

丰富的数据类型

不仅仅是简单的key-value存储

支持字符串、哈希、列表、集合、有序集合等多种数据结构

高可用与分布式

支持主从复制、哨兵模式实现高可用

支持Redis Cluster实现分布式集群

原子性操作所有Redis操作都是原子性的,支持事务

redis的安装非常简单,我们从官网上直接下载对应的压缩包,然后放在自己能找到的目录下解压,这样就算是安装完成了

《保姆级Redis教程:安装配置+数据类型+命令大全,这一篇就够了》

解压之后的目录如下:

《保姆级Redis教程:安装配置+数据类型+命令大全,这一篇就够了》

解压完成之后,我们将启动Redis

直接在当前目录的窗口,输入cmd 回车,打开命令行,敲入 redis-server.exe redis.windows.conf(我们可以不用敲全,可以直接用tab键自动关联)

《保姆级Redis教程:安装配置+数据类型+命令大全,这一篇就够了》

如图所示就是启动成功了,如果要停止,直接CTRL+C即可。

启动成功之后,我们就需要客户端来连接一下Redis服务,这时我们敲入cmd,重新进入一个命令行,然后输入redis-cli.exe,之后显示连接到本地的redis服务,端口号是6379,如果我们要退出客户端,我们直接在命令行中输入exit即可。我们也可以通过 -h -p 来指定连接哪个地方的服务(本地),以及指定端口。

补充:

Redis客户端是指连接和使用Redis服务器的程序或工具。可以这样理解:

  • Redis服务器:像一家银行,负责存储数据和提供服务
  • Redis客户端:像银行的客户,通过特定方式(窗口、ATM、手机App)与银行交互

由于Redis本身没有设置密码,为了安全起见,我们可以手动的为redis设置密码,这时我们关掉所有命令行,打开解压目录下的redis.windows.conf配置文件,这时我们只需用记事本打开,里面有一千多行的代码,我们直接用CTRL+F搜索:pass 

《保姆级Redis教程:安装配置+数据类型+命令大全,这一篇就够了》

由于#是注释的作用,我们要设置密码,就把前面的#删掉,把foobared替换成自己的密码即可。

上面我们使用命令行方式连接redis,用的不是很方便。

我们有直接的图形化界面可以使用,

《保姆级Redis教程:安装配置+数据类型+命令大全,这一篇就够了》

五种常用数据类型:

Redis存储的是key-value结构的数据,其中key是字符串类型,value有5种常用的数据类型:

类型 说明 最大存储 底层实现 适用场景 String 字符串 512MB SDS(简单动态字符串) 缓存、计数器、分布式锁 Hash 哈希表 2^32-1个字段 ziplist / hashtable 对象存储、用户信息 List 列表 2^32-1个元素 quicklist 消息队列、时间轴 Set 集合 2^32-1个元素 intset / hashtable 标签系统、去重 Sorted Set 有序集合 2^32-1个元素 ziplist / skiplist 排行榜、延迟队列

String(字符串)类型命令

1. 基础操作
命令 语法 说明 时间复杂度 示例 SET 设置值 O(1) GET 获取值 O(1) MSET 批量设置 O(N) MGET 批量获取 O(N) GETSET 设置新值返回旧值 O(1) SETNX 不存在才设置 O(1) SETEX 设置并指定过期 O(1)

cursor 教程

PSETEX 毫秒级过期 O(1)

《保姆级Redis教程:安装配置+数据类型+命令大全,这一篇就够了》

2. 数值操作
命令 语法 说明 时间复杂度 示例 INCR 递增1 O(1) INCRBY 增加指定值 O(1) INCRBYFLOAT 浮点数递增 O(1) DECR 递减1 O(1) DECRBY 减少指定值 O(1)
3. 字符串操作
命令 语法 说明 时间复杂度 示例 APPEND 追加字符串 O(1) STRLEN 获取长度 O(1) GETRANGE 截取子串 O(N) SETRANGE 覆盖指定位置 O(1) STRALGO 最长公共子串 O(N)
4. 位图操作
命令 语法 说明 时间复杂度 示例 SETBIT 设置位 O(1) GETBIT 获取位 O(1) BITCOUNT 统计1的个数 O(N) BITOP 位运算 O(N) BITPOS 查找位位置 O(N)

Hash(哈希)类型命令

1. 字段操作
命令 语法 说明 时间复杂度 示例 HSET 设置字段 O(1) HSETNX 字段不存在才设置 O(1) HGET 获取字段 O(1) HMSET 批量设置 O(N) HMGET 批量获取 O(N) HDEL 删除字段 O(N)
2. 批量操作
命令 语法 说明 时间复杂度 示例 HGETALL 获取所有字段和值 O(N) HKEYS 获取所有字段名 O(N) HVALS 获取所有字段值 O(N) HLEN 获取字段数量 O(1) HEXISTS 判断字段是否存在 O(1)
3. 数值操作
命令 语法 说明 时间复杂度 示例 HINCRBY 整数递增 O(1) HINCRBYFLOAT 浮点数递增 O(1)
4. 遍历操作
命令 语法 说明 时间复杂度 示例 HSCAN 游标遍历字段 O(1)每次迭代 HSTRLEN 字段值长度 O(1)

List(列表)类型命令

1. 插入操作
命令 语法 说明 时间复杂度 示例 LPUSH 左侧插入 O(1)每个元素 RPUSH 右侧插入 O(1)每个元素 LPUSHX 列表存在才左侧插入 O(1) RPUSHX 列表存在才右侧插入 O(1) LINSERT 指定位置插入 O(N)
2. 弹出操作
命令 语法 说明 时间复杂度 示例 LPOP 左侧弹出 O(N) count个 RPOP 右侧弹出 O(N) count个 BLPOP 阻塞式左侧弹出 O(1) BRPOP 阻塞式右侧弹出 O(1) RPOPLPUSH 弹出并推入 O(1) BRPOPLPUSH 阻塞版RPOPLPUSH O(1)
3. 查看操作
命令 语法 说明 时间复杂度 示例 LRANGE 范围获取 O(S+N) LINDEX 获取指定位置 O(N) LLEN 获取长度 O(1) LPOS 查找元素位置 O(N)
4. 修改操作
命令 语法 说明 时间复杂度 示例 LSET 设置指定位置 O(N) LREM 删除元素 O(N) LTRIM 截取列表 O(N) LMOVE 元素移动 O(1) BLMOVE 阻塞版LMOVE O(1)

Set(集合)类型命令

1. 基本操作
命令 语法 说明 时间复杂度 示例 SADD 添加元素 O(N) SREM 删除元素 O(N) SMOVE 移动元素 O(1) SPOP 随机弹出 O(N) SISMEMBER 判断是否存在 O(1)
2. 查看操作
命令 语法 说明 时间复杂度 示例 SMEMBERS 获取所有元素 O(N) SCARD 获取元素数量 O(1) SRANDMEMBER 随机获取元素 O(N)
3. 集合运算
命令 语法 说明 时间复杂度 示例 SINTER 交集 O(N*M) SINTERSTORE 交集存储 O(N*M) SUNION 并集 O(N) SUNIONSTORE 并集存储 O(N) SDIFF 差集 O(N) SDIFFSTORE 差集存储 O(N)
4. 遍历操作
命令 语法 说明 时间复杂度 示例 SSCAN 游标遍历 O(1)每次迭代

Sorted Set(有序集合)类型命令

1. 基本操作
命令 语法 说明 时间复杂度 示例 ZADD 添加元素 O(log N) ZREM 删除元素 O(M log N) ZINCRBY 增加分数 O(log N) ZSCORE 获取分数 O(1) ZCARD 获取元素数量 O(1)
2. 排名操作
命令 语法 说明 时间复杂度 示例 ZRANK 正序排名 O(log N) ZREVRANK 倒序排名 O(log N) ZRANGE 正序范围 O(log N+M) ZREVRANGE 倒序范围 O(log N+M) ZRANGEBYSCORE 按分数范围 O(log N+M) ZREVRANGEBYSCORE 倒序按分数 O(log N+M)
3. 计数和删除
命令 语法 说明 时间复杂度 示例 ZCOUNT 统计分数范围内数量 O(log N) ZREMRANGEBYRANK 按排名删除 O(log N+M) ZREMRANGEBYSCORE 按分数删除 O(log N+M) ZREMRANGEBYLEX 按字典序删除 O(log N+M)
4. 集合运算
命令 语法 说明 时间复杂度 示例 ZUNIONSTORE 并集 O(N)+O(M log M) ZINTERSTORE 交集 O(N*K)+O(M log M) ZDIFFSTORE 差集 O(N)+O(M log M) ZUNION 并集不存储 O(N)+O(M log M) ZINTER 交集不存储 O(N*K)+O(M log M) ZDIFF 差集不存储 O(N)+O(M log M)
5. 字典序操作(分数相同时)
命令 语法 说明 时间复杂度 示例 ZRANGEBYLEX 按字典序范围 O(log N+M) ZREVRANGEBYLEX 倒序字典序 O(log N+M) ZLEXCOUNT 字典序范围计数 O(log N)
6. 遍历操作
命令 语法 说明 时间复杂度 示例 ZSCAN 游标遍历 O(1)每次迭代

通用命令(适用于所有数据类型)

命令 语法 说明 示例 KEYS 查找所有匹配的key EXISTS 判断key是否存在 TYPE 查看key的类型 DEL 删除key EXPIRE 设置过期时间 TTL 查看剩余时间 PERSIST 移除过期时间 RENAME 重命名key RANDOMKEY 随机返回一个key DUMP 序列化key RESTORE 反序列化 SCAN 游标迭代key

HyperLogLog 类型命令

命令 语法 说明 时间复杂度 示例 PFADD 添加元素 O(1) PFCOUNT 统计基数 O(1) PFMERGE 合并 O(N)

Bitmap 相关命令

命令 语法 说明 时间复杂度 示例 SETBIT 设置位 O(1) GETBIT 获取位 O(1) BITCOUNT 统计1的个数 O(N) BITPOS 查找位位置 O(N) BITOP 位运算 O(N) BITFIELD 多位操作 O(1)

Geo 地理空间命令

命令 语法 说明 时间复杂度 示例 GEOADD 添加地理位置 O(log N) GEOPOS 获取位置 O(log N) GEODIST 计算距离 O(log N) GEORADIUS 半径查询 O(N+log N) GEORADIUSBYMEMBER 以成员为中心 O(log N) GEOHASH 获取GeoHash O(log N) GEOSEARCH 高级搜索 O(N+log N)

Stream 流类型命令

1. 生产和消费
命令 语法 说明 时间复杂度 示例 XADD 添加消息 O(log N) XREAD 读取消息 O(N) XRANGE 范围查询 O(log N+M) XREVRANGE 反向范围 O(log N+M)
2. 消费者组
命令 语法 说明 时间复杂度 示例 XGROUP 创建消费组 O(1) XREADGROUP 组消费 O(N) XACK 确认消息 O(1) XPENDING 查看待确认 O(1) XCLAIM 转移消息 O(log N)
3. 管理和删除
命令 语法 说明 时间复杂度 示例 XDEL 删除消息 O(1) XLEN 获取长度 O(1) XTRIM 裁剪流 O(N) XINFO 查看流信息 O(1)

事务相关命令

命令 语法 说明 时间复杂度 示例 MULTI 开启事务 O(1) EXEC 执行事务 取决于命令 DISCARD 取消事务 O(1) WATCH 监视key O(1) UNWATCH 取消监视 O(1)

发布订阅命令

命令 语法 说明 时间复杂度 示例 PUBLISH 发布消息 O(N+M) SUBSCRIBE 订阅频道 O(N) UNSUBSCRIBE 取消订阅 O(N) PSUBSCRIBE 模式订阅 O(N) PUNSUBSCRIBE 取消模式订阅 O(N) PUBSUB 查看订阅信息 O(N)

Lua脚本命令

命令 语法 说明 时间复杂度 示例 EVAL 执行脚本 取决于脚本 EVALSHA 执行缓存脚本 取决于脚本 SCRIPT LOAD 加载脚本 O(N) SCRIPT EXISTS 检查脚本 O(N) SCRIPT FLUSH 清除所有脚本 O(N) SCRIPT KILL 终止脚本 O(1)

连接管理命令

命令 语法 说明 时间复杂度 示例 AUTH 密码认证 O(1) PING 测试连接 O(1) ECHO 返回消息 O(1) SELECT 切换数据库 O(1) QUIT 关闭连接 O(1) CLIENT 客户端管理 O(N)

服务器管理命令

命令 语法 说明 时间复杂度 示例 INFO 服务器信息 O(1) CONFIG GET 获取配置 O(N) CONFIG SET 设置配置 O(1) DBSIZE 当前数据库key数量 O(1) FLUSHDB 清空当前数据库 O(N) FLUSHALL 清空所有数据库 O(N) SAVE 同步保存 O(N) BGSAVE 后台保存 O(1) LASTSAVE 最后保存时间 O(1) SHUTDOWN 关闭服务器 O(N) TIME 服务器时间 O(1)

常用命令速查表

操作类型 String Hash List Set Sorted Set 添加 获取 删除 存在 – – 长度 批量 递增 – –

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/273153.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月12日 下午1:01
下一篇 2026年3月12日 下午1:01


相关推荐

关注全栈程序员社区公众号