redis实验命令指南

1.启动并建立交互式
操作 命令
启动redis redis-server
启动时更改端口(默认6379) redis-server - -port 新端口号
配置文件附加启动 redis-server 配置文件路径(.conf)
(1)本机交互 redis-cli -h 127.0.0.1 -p 6379
(2)结束交互 redis-cli (-p 端口号)shutdown

-h 指定了 Redis 服务器的主机地址。在这个例子中,127.0.0.1 是本地回环地址,意味着连接请求将发送到运行该命令的同一机器上。-p 6379 指定了 Redis 服务器监听的端口号。

启动多个redis:修改.conf配置文件(dir数据存放位置,端口号),用表格第三行启动第二个redis实例,记得要结束交互,不然会占用端口。

ps.以上操作需要另开命令窗口

2.redis-kv操作 & API操作
*所有类别 操作 命令
设置键值对 set key value
查看value get key
输出所有key(似栈) keys *
输出key总数 dbsize
检查Key是否存在 exists key
删除key del key1 key2 ...
设置过期时间(过期自动删) expire key seconds
查看还有多久过期 ttl key(-1:未设 -2:不在)
查看value数据类型 type key
重命名键 rename K1 K1_new
同主机 异redis:迁移键 dump K(返回序列化结果v') (在目标实例中执行)restore K' ttl v'
异redis 迁移键 migrate IP port " " timeout K1 K2...
遍历键 scan 0
随机返回一个K randomkey
3.不同数据类型
外部数据类型 内部数据编码 范围
string int <= 8B
embstr <= 39B
raw > 39B
hash ziplist k-v个数<512 && v<=64B
hashtable ------
list ziplist 元素个数<512 && 元素<64B
linkedlist ------
set intset 元素为int 元素个数<512
hashtable ------
数据类型 加入1个 加入n个
字符串 set K v mset K v1 v2 v3 ...
哈希 hset K 'k 'v hmset K 'k1 'v1 'k2 'v2 'k3 'v3 ...
列表 lpush K v lpush K v1 v2 v3 ...
集合 sadd K v sadd K v1 v2 v3 ...
有序集合 zadd K s m zadd K s1 m1 s2 m2 ...
4.字符串
操作 命令
分布式锁下的新添key并设置过期时间 setnx key1 value1 ex time_s
对应的更新key---+设置过期时间(s) setxx key1 value2 ex time_s
基于上述,过期时间设置为ms set key2 value2 px time_ms
获取value get key
批量删除 del k1 k2 k3
批量设置 mset k1 v1 k2 v2 k3 v3
批量获取 mget k1 k2 k3
自增整数 incr key
自增指定整数值 incrby key num
自增指定浮点数 incrbyfloat key num
自减指定数 decr key num
追加字符串至尾部 append key string_add
获取长度 strlen key
获取原值并更新值 getset key value2
更新某个字符(下标从0开始) setrange key array char_new
获取子字符串 getrange key array_start array_end
5.哈希
操作 命令
设置 hset Key1_外部键名 hash_k hash_v
查询 hset K1 k' //查到hash_v1
批量设置 hmset K1 'k1 'v2 'k2 'v2 ...
批量查询v' hmget K1 'k1 'k2 ...
批量查询所有'k hkeys K1
批量查询所有'v hvals K1
批量查询k+v hgetall K1
自增指定整数值 hincrby K1 'k1 num
自增指定浮点数 hincrbyfloat K1 'k1 num
计算v'长度 hstrlen K1 'k1
6.列表
操作 命令
插入元素(右r,左l) rpush K v
批量插入元素(右r,左l) rpush K v1 v2 v3
查看指定下标范围的部分元素 lrange K start_ end_(下标从0开始)
查看列表所有元素 lrange K 0 -1 (end= -1表示全部)
查看某个元素 lindex K index (lrange K index index)
查看长度 llen K
在v0后面(前面)插入v4 linsert K after(before) v0 v4
弹出 rpop(lpop) K
--->>最多删除n个元素v0 lrem K n v0
<<--- 最多删除n个元素v0 lrem K -n v0
删全部的元素v0 lrem K 0 v0
剪枝(保留下标范围) ltrim K start_ end_
修改元素 lset K index new_value
阻塞弹出 blpop(brpop) K timeou
7.集合
操作 命令
插入 sadd K v
删除 srem K v
统计个数 scard K
判断元素是否存在 sismember K v
随机返回x个元素 srandmenber K x
随机返回1个元素 srandmenber K
随机弹出元素 spop K
获取所有元素 smembers K
集合间操作 命令
交集 A∩B sinter A B
并集 A∪B sunion A B
差集 A-B sdiff A B
C = A ∩ B sinterstore C A B
C = A ∪B sunionstore C A B
C = A - B sdiffstore C A B
8.有序集合
操作 命令
添加 zadd K score member
计算成员个数 zcard K
返回成员成绩 zscore K m1
返回某人排名 zrank K m1
删除成员 zrem K m...
给某人增加分数 zincrby K increase_score m
排名区间内的mem(升) zrange K start_ end_ withscores
排名区间内的mem(降) zrevrange K start_ end_ withscores
成绩区间内的mem(升) zrangebyscore K min max withscores
成绩区间内的mem(降) zrevrangebyscore K min max withscores
统计成绩区间人数 zcount K min max
删除排名区间内的mem zremrangebyrank K start_ end_
删除成绩区间内的mem zremrangebyscore K min max
有序集合间操作 命令
交集 C = A1 ∩ A2 ∩ ... ∩ An权重xi 分值计算方式 zinterstore C n A1 A2... An weights x1 ...x2...xn aggregate min/max/sum
并集 zunionstore ...
9.数据库
操作 命令
切换至redis实例下第n个数据库 select n
清除当前数据库 flushdb
清除redis应用实例下所有数据库 flushall
10.redis-cli选项
选项 解释
--r x 命令 执行x次命令
--i t 每隔t秒执行一次(配合上一个命令)
--x 命令 将输入流的字段作为命令的最后一个参数
--c 启用集群模式
--a 密码 输入密码
-- -- slave 返回redis节点更新的操作
-- --rdb redis生成RDB持久化文件,保存本地
-- --pipe 将命令封装成redis通信协议定义数据类型
-- --bigkeys 找出占用内存最大的Key
-- -- eval 执行指定Lua脚本
-- --latency 检测网络延迟
-- --latency-history 历史记录
-- --latency-dist 统计图表形式
-- --stat 实时展示重要信息
-- --raw 返回格式化结果
-- --no-raw 返回原始格式
相关推荐
m0_639906942 小时前
Redis入门|五种数据结构、使用场景、持久化RDB&AOF
数据结构·数据库·redis
IT规划师7 小时前
Redis 数据类型全解 - String 不只是 get set:90% 开发者忽略的 8 个高阶用法与内存陷阱(一)
redis·.net core
Flynn Liang9 小时前
内存/Redis/PGVector/Milvus/ES 怎么选?Spring AI VectorStore 抽象与向量库选型对照表
redis·elasticsearch·milvus·rag·springai·pgvector·向量库
hweiyu0010 小时前
Redis命令:SUNIONSTORE
redis·缓存
麻瓜code11 小时前
秒杀优化三连:Lua + 阻塞队列 + Redis Stream,响应从 3.4 秒到毫秒级
redis·junit·lua
没有气的汽水14 小时前
一次生产 Redis 内存打满的排查、清理和复盘
redis
hey you~15 小时前
云呼叫中心坐席自动分配实战:ACD 策略、Redis+Lua 实现与排查清单
数据库·redis·lua·云呼叫中心·acd·坐席分配·坐席状态机
我不会起名字32216 小时前
Redis pipeline 用了反而更慢:3 类误用与正确的批量姿势
redis·pipeline·lua·rtt·批量
Tsuki_tl16 小时前
【总结】Redis五大数据类型应用场景及基本命令
数据库·redis·后端·缓存·缓存中间件·redis命令·redis 五大数据类型