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