Redis数据类型及常用操作命令(一)
  • 分类:Redis
  • 发表:2019-08-22
  • 围观(1,762)

Redis支持的数据类型:字符串(string)、列表(list)、哈希(hash)、集合(set)、有序集合(sorted set)、HyperLogLog、Geo。其中HyperLogLog、Geo在4.x版本中出现。
本章主要介绍字符串(string)、列表(list)、哈希(hash)、集合(set)三种类型的常用操作。

1.字符串(string)类型常用操作:

操作 作用 举例 结果
SET 赋值 SET "test key" "test value" 成功则返回 ok
GET 取值 GET "test key" key存在,则返回value值,不存在,则返回nil
STRLEN 获取字符串长度 GET "test key" 存在,则返回value的长度,不存在,则返回0
APPEND 末尾追加字符串 APPEND "test key" "append value" 返回追加后字符串长度,如果key不存在,则新建一个空字符串并追加
SETRANGE 覆盖字符串部分 SETRANGE "test key" 5 "new value" 覆盖从偏移量位置开始所有字符:如原字符串为abcde,offset为3,新字符串为gggg,则替换后为:abcgggg。偏移量从0开始算。
SETNX 区别于SET,SET当key存在时,则会覆盖,而SETNX,当key存在,则不会覆盖 SETNX "test key" "test value"|key存在,则返回0且不覆盖原来的值,key不存在,则赋值
MSET [ ...] 一次通讯,批量设置多个键值对,整个操作是原子性的 MSET "test key 1" "test value 1" "test key 2" "test value2" 成功则返回OK
MGET [...] 批量获取多个值 MGET "test key 1" "test key 2" 返回对应的多个值

2.列表(list)类型常用操作:

操作 作用 举例 结果
LPUSH [ ...] 在列表的左端插入值 LPUSH "test list" "aa" "bb" "cc" 返回添加后列表的总数
LRANGE 从列表左侧获取开始位置到结束位置的值 LRANGE "test list" 0 1 返回开始到结束位置的数据。以前一个例子为例,则返回 "cc" "bb"。如果要返回全部数据,则stop设置为-1。
RPUSH [...] 从列表右端插入值 RPUSH "test new list" "aa" "bb" "cc" 返回添加后列表的总数
LINSERT BEFORE|ARTER 在指定的某个值左侧(BEFORE)或右侧(ARTER)插入值 LINSERT "test new list" BEFORE "bb" "abc" 在值"bb"前插入"abc",并返回插入后列表长度
LINDEX 获取列表中位于索引位置的值 LINDEX "test new list" 3 返回位置3的值;注:下标从0开始
LPOP 从列表的左端移除第一个元素 LPOP "test new list" 存在key,则返回移除的元素,不存在,则返回nil
RPOP 从列表右侧移除
LTRIM 用于删除列表中的多个元素,只保留start和end索引所指定范围的元素 LTRIM "test new list" 1 2 成功删除,并返回OK:例如原列表为 "aa","bb","cc","dd","ee";执行案例语句,则列表为:"bb","cc"
LSET 设置列表中指定索引位置处的值 LSET "test new list" 1 "abc" 成功,则返回OK,越界:则返回 ERR index out of range

只有列表存在时,才将元素插入到列表中,则可以使用LPUSHX或RPUSHX

3. 哈希(hash)类型常用操作

操作 作用 举例 结果
HMSET [ ...] 设置Hash值 HMSET "test hash key" "name" "张三" "age" 23 成功,则返回OK
HMGET [...] 从哈希中获取多个字段对应的值 HMGET "test hash key" "name" "age" 返回对应key各字段的值,不存在的,则返回nil
HGET 从哈希中获取某个字段对应的值 HGET "test hash key" "name" 返回对应字段的值,不存在,则返回nil
HEXISTS 测试一个哈希中是否存在某个字段 HEXISTS "test hash key" name 存在则返回1,不存在,则返回0
HGETALL 获取一个哈希中所有字段和值 HGETALL "test hash key" 返回所有字段和值
HSET 设置某个字段的值,用于修改现有字段的值或添加新的字段 HSET "test hash key" "name" "admin" 修改返回0,新增返回1
HDEL [..] 删除哈希中的字段 HDEL "test hash key" "name" 返回删除的字段个数
HSETNX 仅在字段不存在的情况下才设置值
HSCAN [MATCH ] [COUNT ] 是一种基于指针的迭代器,增量地迭代遍历元素,且不会造成服务器堵塞。每次调用时,需要制定一个游标(从0开始)。当一次HSCAN结束后,Redis会返回新的游标及元素列表。若新的游标为0,则表示迭代结束。功能类似于分页查询。 HSCAN "test hash key" 0 MATCH address COUNT 5 返回新的游标及元素列表

关于HSCAN命令中,COUNT参数可能不起作用。主要是HSCAN命令对于字段较多时进行使用,字段少时,可能设置了,也不会起作用。


扫描关注,及时获取最新消息!

转载本站文章,请注明出处:呦呦工作室

Top