redis常用命令整理

2020-03-06 12:00:46王旭

一、key 相关:

(1)redis允许模糊查询 key(keys *)  有3个通配符 *、?、[]

(2)randomkey:返回随机key  

(3)type key:返回key存储的类型

(4)exists key:判断某个key是否存在

(5)del key:删除key

FLUSHALL: 删除所有key(慎用)

二、数据操作:

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及 zset(sorted set:有序集合)。

1、string(字符串)

一个key对应一个value。一个键最大能存储512MB。string类型是二进制安全的。

(1)set key value [ex 秒数] [px 毫秒数] [nx/xx]  

如果ex和px同时写,则以后面的有效期为准

nx:如果key不存在则建立

xx:如果key存在则修改其值

(2)get key:取值

(3)mset key1 value1 key2 value2 一次设置多个值

(4)mget key1 key2 :一次获取多个值

(5)setrange key offset value:把字符串的offset偏移字节改成value

如果偏移量 > 字符串长度,该字符自动补0x00

(6)append key value :把value追加到key 的原值上

(7)getrange key start stop:获取字符串中[start, stop]范围的值

对于字符串的下标,左数从0开始,右数从-1开始

注意:

当start>length,则返回空字符串

当stop>=length,则截取至字符串尾

如果start所处位置在stop右边,则返回空字符串

(8)getset key nrevalue:获取并返回旧值,在设置新值

2、hash(哈希) 

Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。每个 hash 可以存储 232 - 1 键值对(40多亿)。

(1)hset myhash field value:设置myhash的field为value

(2)hsetnx myhash field value:不存在的情况下设置myhash的field为value

(3)hmset myhash field1 value1 field2 value2:同时设置多个field

(4)hget myhash field:获取指定的hash field

(5)hmget myhash field1 field2:一次获取多个field

(6)hincrby myhash field 5:指定的hash field加上给定的值

(7)hexists myhash field:测试指定的field是否存在

(8)hlen myhash:返回hash的field数量

(9)hdel myhash field:删除指定的field

(10)hkeys myhash:返回hash所有的field

(11)hvals myhash:返回hash所有的value

(12)hgetall myhash:获取某个hash中全部的field及value

3、list(列表)

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。

(1)lpush key value:把值插入到链表头部

(2)rpush key value:把值插入到链表尾部