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 | 返回原始格式 |