redis中数据类型命令整理

2020-03-11 12:01:30王冬梅

二:散列类型(hash)

函数 语法
设置单个:HSET HSET key field value,不存在时返回1,存在时返回0,没有更新和插入之分
设置多个:HMSET HMSET key field value [field value ...]
读取单个:HGET HGET key field,不存在是返回nil
读取多个:HMGET HMGET key field [field ...]
读取全部:HGETALL HGETALL key,返回时字段和字段值的列表
判断字段是否存在:HEXISTS HEXISTS key field,存在返回1 ,不存在返回0
字段不存在时赋值:HSETNX HSETNX key field value,与hset命令不同,hsetnx是键不存在时设置值
增加数字:HINCRBY HINCRBY key field increment ,返回增加后的数,不是整数时会提示错误
删除字段:HDEL HDEL key field [field ...] ,返回被删除字段的个数
只获取字段名:HKEYS HKEYS key ,返回键的所有字段名
只获取字段值:HVALS HVALS key ,返回键的所有字段值
字段数量:HLEN HLEN key ,返回字段总数

三:列表类型(list)

内部使用双向链表实现,所以获取越接近两端的元素速度越快,但通过索引访问时会比较慢

函数 语法
添加左边元素:LPUSH LPUSH key value [value ...] ,返回添加后的列表元素的总个数
添加右边元素:RPUSH RPUSH key value [value ...] ,返回添加后的列表元素的总个数
移除左边第一个元素:LPOP LPOP key ,返回被移除的元素值
移除右边第一个元素:RPOP RPOP key ,返回被移除的元素值
列表元素个数:LLEN LLEN key, 不存在时返回0,redis是直接读取现成的值,并不是统计个数
获取列表片段:LRANGE

LRANGE key start stop,如果start比stop靠后时返回空列表,0 -1 返回整个列表正数时:start 开始索引值,stop结束索引值(索引从0开始)负数时:例如 lrange num -2 -1,-2表示最右边第二个,-1表示最右边第一个,

删除指定值:LREM

LREM key count value,返回被删除的个数

count>0,从左边开始删除前count个值为value的元素

count<0,从右边开始删除前|count|个值为value的元素

count=0,删除所有值为value的元素

索引元素值:LINDEX LINDEX key index ,返回索引的元素值,-1表示从最右边的第一位
设置元素值:LSET LSET key index value
保留列表片段:LTRIM LTRIM key start stop,start、top 参考lrange命令
一个列表转移另一个列表:RPOPLPUSH

RPOPLPUSH source desctination ,从source列表转移到desctination列表,该命令分两步看,首先source列表RPOP右移除,再desctination列表LPUSH