redis-cli中有大量的命令,针对不同的数据类型(string, hash, list, set, zset),使用的命令也不尽相同,这里根据自己常用的数据类型进行分类记录。
全局命令
- scan (时间复杂度O(1),浏览全部key列表, 从0开始,每次列出10条 命令:scan 0)
- keys (KEYS pattern ,时间复杂度O(n),n表示key数量,根据筛选条件筛选,可正则匹配, 列出全部key keys *)
- dbsize (统计key记录总数目)
- type (时间复杂度O(1),查询特定key的对应类型, type eric表示查询keyname为eric的键类型,返回值为none,string,list,set,zset,hash)
- exists (EXISTS key,时间复杂度O(1),判断key是否存在)
- expire (时间复杂度O(1),设置key的过期时间)
- rename (时间复杂度O(1),修改keyname, 如果新name与原名相同,或者原key不存在,则报错)
- del (DEL key [key …] ,时间复杂度O(n),n为被删除key的数目,删除key,)
- monitor 监控当前redis的正在执行命令情况
注:
scan每次返回两个结果集,0表示下次索引开始下表, 如果返回0表示一次遍历完成
当数据量很大的时候,执行keys 可能会造成redis进程阻塞,因为会全局遍历
字符串(string)命令
- get (获取string key的值)
- set (设置单个string key的值)
- mget (一次获取多个string key的值)
- mset (一次设置多个string key)
- strlen (返回string key 存储字符串的长度)
哈希(hash)命令
- hget (HGET key field , 时间复杂度O(1), 获取哈希表key中filed域的值 )
- hset (HSET key field value,时间复杂度O(1),向哈希表key中设置field域,值为value)
- hmset (HMSET key field value [field value …],时间复杂度O(n),n表示查询key数目. 设置多个域)
- hmget (HMGET key field [field …], 时间复杂度O(n),n表示查询key数目,查询多个域)
- hdel (HDEL key field [field …],时间复杂度O(n), 删除哈希表key中对应域)
- hkeys (仅仅返回key下域名的列表)
- hscan (返回key下 域名 和 域值的列表)
- hvals (仅仅返回全部域的值,不返回域名称)
- hlen (HLEN key,,时间复杂度O(1),返回哈希表key中field数目)
string 和 hash的区别:
string为key-value 形式,一个key的值为一个字符串, 例子: eric: “fengsp”
hash为key:object形式,一个key对应一个对象,对象可以有多个属性域,object类似js中的对象 ,
例子: eric: {first_name:”sp”, last_name:”feng”}
…待续