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