redis使用基础(八) ——Redis命令属性

redis使用基础(八)

——Redis命令属性

 

(转载请附上本文链接——linhxx)

 

一、概述

         Redis不同的命令有不同的属性,如是否为只读、是否为管理员命令等。不同的属性类型有不同的特性。redis有6种命令属性。

 

二、REDIS_CMD_WRITE

         该属性会修改redis的数据,只读的从数据库会拒绝该类型的命令。对redis的数据进行增、删、改,无论是值、key->value、score、队列、集合操作、过期时间、排序等任意内容,只要执行完后redis的数据和原先不一样,就是此属性的命令。

         该属性的命令非常多,含有set、push、pop、del、add、rem、incr、decr、move、flush、expire、rename、union、inter、append、sort等的命令,通常都是redis_cmd_write。

 

三、REDIS_CMD_DENYOOM

         该属性的命令会增加redis占用存储空间,该属性属于redis_cmd_write的其中一大类,如set、push命令,如果操作的是新的键,则需要redis再分配空间给这些键。

         但是redis_cmd_write不全是redis_cmd_denyoom,如set对现有键重新分配,如果字符串长度一样则不会改变大小;如del删除键,反而会减少使用存储空间。

 

四、REDIS_CMD_NOSCRIPT

         该属性的命令无法在脚本中(如PHP等)对redis服务器执行,而只能在管理工具如redis-cli等平台执行。

         包括:BRPOP、BRPOPLPUSH、BLPOP、SPOP、AUTH、EXEC、MULTI、SAVE、DISCARD、SYNC、REPLCONF、MONITOR、SLAVEOF、DEBUG、SUBSCRIPE、UNSUBSCRIPE、PSUBSCRIPE、WATCH、UNWATCH、EVAL、EVALSHA、SCRIPT。

         这些命令主要是对redis进行管理的命令,如主从命令、登陆鉴权、监控管理、底层通信、调试、复制与备份、发布订阅、脚本操作等命令。

 

五、REDIS_CMD_RANDOM

         执行该类型的属性后,就不能再执行redis_cmd_write属性。

         包括:SPOP、SRANDMEMBER、RANDOMKEY、TIME。

 

六、REDIS_CMD_SORT_FOR_SCRIPT

         该属性会产生随机的结果,在脚本调用这些命令时,redis会对结果进行排序。

         包括:SINNER、SUNION、SDIFF、SMEMBERS、HKEYS、HVALS、KEYS。

 

七、REDIS_CMD_LOADING

         当redis正在启动,正在将数据从硬盘加载到内存中的时候,只会执行此属性的命令。

         包括:INFO、SUBSCRIBE、UNSUBSCRIPE、PSUBSCRIPE、PUNSUBSCRIPE、PUBLISH、AUTH、SELECT。

 

——written by linhxx

 

更多最新文章,欢迎关注微信公众号“决胜机器学习”,或扫描右边二维码。

posted @ 2018-02-04 12:21  lin_h  阅读(324)  评论(0编辑  收藏  举报