keys *:查看当前库所有的key,类似于select*。
exists key:判断某个key是否存在,存在返回1,不存在返回0。
exists k1 k2 k3
//若有一个不存在则返回2,以此类推
type key:查看key是什么类型。
del key:删除指定的key数据。
unlink key:非阻塞删除,真正的删除在异步中操作
ttl key:查看还有多长时间(秒)过期,返回-1代表永不过期,返回-2代表已经过期。
expire key [second]:为给定的key设置过期时间。
move key dbindex [0-15]:将当前数据库的key移动端给定的数据库中。
redis有16个数据库,默认使用0号数据库。
select [0-15]:选择某个数据库。
dbsize:查看当前数据库的key数量,类似于select count(*)。
flushdb:清空当前库。
flushall:通杀全部库。
move key db:将当前数据库的数据移动到给定数据库。
kelp @xxx。官网给出此命令有多个可选参数。
SET key value [NX | XX] [GET] [EX seconds | PX milliseconds |
EXAT unix-time-seconds | PXAT unix-time-milliseconds | KEEPTTL]
EX [second] – 设置指定的过期时间(以秒为单位)。PX [millisecond] – 设置指定的过期时间(以毫秒为单位)。EXAT [second] – 设置键过期的指定 Unix 时间(以秒为单位)。PXAT [millisecond] – 设置键过期的指定 Unix 时间(以毫秒为单位)。NX– 键不存在时才设置密钥。XX– 仅当键已存在时才设置密钥(覆盖原值)。KEEPTTL– 保留与键关联的生存时间。GET– 返回指定键原本的值,若键不存在返回``nil`mset [k v]...用于同时创建多个键值对。
mset k1 v1 k2 v2 k3 v3
mget [k]...用于查看多个键的值。
mget k1 k2 k3
与set一样,mset也可以选择使用上述参数,但是会当成一个整体,不存在部分操作成功。
此两种命令用来获取或设定区间范围的值。
getrange key [st ed]:或许索引下标之间的字符串(索引从0开始)。
setrange key [st str]:设置从下标st开始的一段值为str。
set k1 123456 #1234abcd
getrange k1 0 4 #1234a
setrange k1 2 xxyy #12xxyycd
incr/decr:递增/递减数字。incrby/decrby key cnt:增加(减少)指定的值。strlen key:获取字符串的长度。append key str:在原来的基础上追加内容。lpush key [v1 v2...]:在列表头部插入一个或者多个值。rpush key [v1 v2...]:在列表尾部插入一个或多个值。lindex key cnt:获取指定索引下标的元素。lrange key [st ed]:获取指定范围内的元素。llen key:获取列表中元素的个数。lpop key:移除并获取列表的第一个元素。rpop key:移除并获取列表的最后一个元素。lrem key cnt v1:删除cnt个值为v1的元素。ltrim key [st ed]:截取指定范围内的元素并覆盖原值。rpoplpush k1 k2lset key index val:通过索引设置列表元素值。linsert key before/after have new:在某值之前或之后插入新值。map> hset key [f1 v1] [f2 v2]...:将哈希表中的field字段设值为value。hget key field:获取字段映射的值。hmget key f1 f2...:获取多个字段映射的值。hlen key:获取全部字段的数量。hgetall key:获取哈希表中所有的字段和值。hsel key f1 f2...:删除一个或多个哈希表字段。hkeys key:获取哈希表中的所有字段。hvals key:获取哈希表中所有的值。hincrby key field add:为指定字段的整数值加上增量。hincrbyfloat:为指定字段的浮点数值加上增量。hsetnx f1 v1(不可同时赋值多个)sadd key [m1 m2...]:添加一个或多个元素。srem key [m1 m2...]:删除一个或多个元素。smembers key:返回集合中到的所有成员。srandmembser key [cnt]:返回集合中指定个随机值。scard:获取成员的集合数。sismemser key member:判断元素是否存在。spop key:移除并返回集合中的一个元素。smove k1 k2 valsdiff差集运算
sdiff key k1 [k2...]
属于key但不属于k1 k2 …的元素构成的集合(新集合)。
sunion并集运算
sunion key k1 [k2...]sinter交集运算
sinter key k1 [k2...]zadd key s1 m1 [s2 m2]:添加一个或多个元素。zrem key score m1 [m2...]:删除某分数下对应的值。zcard key:获取有序集合的成员数。zscore key member:返回有序集合中成员的分数值。zcount key min max:返回指定区间分数的成员数(包含区间)。zrange key st ed:返回索引区间内的成员。zrevrange key st ed:返回索引区间内的成员,分数由高到低。zrangebyscore key min max [withsocres][limit]key increment member
对有序集合中指定成员的分数加上增量 。
zrank key member:返回有序集合中指定成员的索引(获取下标值)。zrevrank:回有序集合中指定成员的索引,并按分数从小到大排列。用String类型作为底层数据结构实现的一种统计二值状态的数据类型。
由多个二进制位组成,每个二进制位都对应一个偏移量。
位图本质是数组,每一位用来判断是否二值。

setbit key offset valuegetbit key offsetstrlen key:统计字节数占用多少(8位一字节)。bitcount key [st ed]:全部(范围)键里含有多少个1。botop operation key k1 [k2 ...]pfadd key e1 [e2 e3...]pfcount key [k1 k2...]:返回给定的hyperloglog的基数估计值。pfmerge key k1 [k2 k3...]:将多个合并。geoadd key 经度 纬度 位置名称 [a b c]..:添加一个或多个位置信息。geopos key 位置名称 [m1 m2....]:返回所有指定位置的位置信息。geohashgeodist key m1 m2 [m|km|ft|mi]:返回两个给定位置之间的距离。georadius key 经度 纬度 radius m|km|ft|mi:以某经纬为中心,查找半径范围内的XXX。georadiusbymember key member radius m|km|ft|mi:以某位置为中心,查找半径范围内的XXX。相当于Redis版的消息中间件(阻塞队列),MQ。
实现消息队列,支持消息的持久化,支持消费者模式等。
让消息队列更加的稳定可靠。
自成一派,为stream类型。

id结构:<毫秒时间戳> - <递增序列号>
xadd key id field value [f1 v1 f2 v2 ...]
xrange key st ed [count cnt]
-时表示最小值,ed为+时,表示最大值。xrevrange key ed st...:降序输出。xdel key id [id ...]
xtrim对流进行截取,限制长度。
xtrim key maxlen count:修建为最新的指定数目个项目。xtrim key minid id:低于所指定id的所有条目都将被逐出。xtrim key maxlen ~ count:~ 参数意味着用户并没有真正请求流长度正好为cnt个项目,而是可以多几十个条目,但永远不会少于cnt个项目。xread [COUNT cnt] [BLOCK ms] streams key [key ...] id [id ...]
$代表特殊ID,表示以当前Stream已经存储的最大的ID作为最后一个ID,当前Stream中不存在大于当前最大ID的消息,因此此时返回nil。0-0代表从最小的ID开始获取Stream中的消息,当不指定count,将会返回Stream中的所有消息,注意也可以使用0(00/000也都是可以的……)
xgroup create
xgroup create key groupname 0:从头部开始消费(依次向后消费)。xgroup create key groupname $:从尾部开始消费(消费新来的信息)。xreadgroup group
xreadgroup groupname consumer streams keyxpending
xack