1. 针对于string
SET key value / GET key
SET k1 v1
GET k1 // v1
String是二进制安全的,是可变长度的, 底层类似于ArrayList 是可扩容的,最大存储内存为 512MB。
2. 判断key中是否存在某个内容
EXISTS key
SET k1 v1
EXISTS k1 // 1
1 表示存在,0表示不存在
3. 删除某个key
3.1 DEL (若过大数据量可能出现阻塞队列)
SET k1 v1
DEL k1 //1
删除成功返回1,反之0
3.2 UNLINK(非阻塞性删除)
UNLINK key
SET k1 v1
UNLINK k1 // 1
删除成功返回1,反之0
4. 关于key是否到期
4.1 TTL 来查询key是否到期
TTL key
SET k1 v1
TTL k1 // -1
-1 代表永不过期,-2代表已经过期,其他数字代表正在倒计时。默认都是永不过期。
4.2 EXPIRE 来定义key过期时间
EXPIRE key timeNumber
SET k1 v1
EXPIRE k1 40 // 单位是秒
TTL k1 // 40
TTL k1 // 39
TTL k1 // 38
.....
TTL k1 // -2
5. KEYS * 获取目前创建的所有key
KEYS *
SET k1 v1;
SET k2 v2;
KEYS * // 1) "k2"
// 2) "k1"
6. 数据库的移动
Redis 出厂自带16个db库,对应下标是 0 - 15
6.1 SELECT [0-15] 切换到指定的数据库
SELECT 1 // 移动到索引为1的数据库
6.2 MOVE key [0-15] 将当前的key移动到指定的数据库中
SET k1 v1
MOVE k1 2 // 将k1移动到索引为2的数据库中
7.DBSIZE 获取当前库中有多少key
SET k1 v1
DBSIZE // 1
8. 清空库
8.1 FLUSHDB 清空当前库
FLUSHDB
8.2 FLUSHALL 通杀所有库
FLUSHALL
9. 数据类型的命令操作
9.1 永远的帮助命令,HELP
HELP@[数据类型]
9.2 Redis 字符串(String)
特点: 单值,单Value
9.2.1 NX参数 Key不存在的时候进行创建
SET k1 v1 NX
GET k1 // v1
SET k1 v1 NX // 已经存在
// 输出(nil)
9.2.2 XX参数 Key存在时进行创建
SET k2 v2 XX // 此时db里是没有存在k2的
// (nil)
SET k2 v2
SET k2 v2 XX // 可以成功创建,value的值进行覆盖
9.2.3 GET 参数 返回原有的vealu。
SET k1 v1;
SET k1 v2 GET; // v1
GET k1; // v2
还可以直接使用GETSET来进行更该且返回值
SET k1 v1;
GETSET k1 v2; // v1
GET k1; // v2
9.2.4 EX, PX 设置过期时间
这个很简单。在后面跟随即可
SET k1 v1 EX 10; // 十秒后过期
SET k1 v1 PX 10000; // 一万毫秒后过期
9.2.5 EXAT 设置UNIX时间戳 单位秒
在Java中获取UNIX时间戳。
- Long.toString(System.curretTimeMillis() / 1000L);
SET k1 v1 EXAT xxxxx;
PXAT 是毫秒。把 /1000去掉即是毫秒。用法不变。
9.2.6 KEEPTTL 保留生存时间
SET k1 v1 EX 30; // 三十秒后过期
SET k1 v2; // 一旦这样做,重新赋值,则ttl = -1; 永不过期
TTL k1; // -1
// 所以应该在修改value的时候,后面加上KEEPLTTL保留生存时间
SET k2 v2 EX 30;
SET k2 v3 KEEPTTL;
9.2.7 批量 MSET,MGET,MSETNX
批量添加和批量获取键值对,很简单。
// 批量添加
MSET k1 v1 k2 v2 k3 v3 k4 v4;
// 批量获取
MGET k1 k2 k3 k4;
// MSETNX 就是不存在的时候在进行创建
MSETNX k5 v5 k6 v6 k7 v7;
但是需要注意的是 MSETNX是整体性的,具有原子性的。如果存在k1,不存在k4,那么整体来说都是存在的,则都不会创建。要么全部不存在,进行创建,要么不创建。
9.2.8 GETRANGE,SETRANGE截取和精确设置(覆盖)
GETRANGE key statrIndex stopIndex
很容易理解
SET k1 abcdefg1234567;
GETRANGE k1 0 -1; // abcdefg1234567
如果后面跟的参数是 0 到 -1 则表示获取全部的内容,下标从0开始,到全部数量 - 1 结束。
SET k1 abcdefg1234567;
GETRANGE k1 0 - 3; // abcd
SETRANGE key index value;
SET k1 aaaaaaaaaa;
SETRANGE k1 2 bbbb;
GET k1; // aabbbbaaaa