基本信息与操作
redis支持5种基本数据类型:字符串、哈希表、有序列表、无序集合和有序集合。
字符串
最典型的数据结构,以KV方式存储:
> set iamkey iamvalue
> get iamkey
> del iamkey
set成功时打印OK,get成功返回值,del成功返回key值映射的元素数(在字符串中,value数量永远是1)
Redis一个键能存储的value最大为512MB
哈希表
哈希表适用于存储对象,在key-哈希表的键值对下存储键值对(俄罗斯套娃)。
一个哈希表最多可储存(1<<32)-1个键值对。
- 添加表项:
HMSET imkey field fieldval [field2 fieldval2... ]
,其中value似乎也只能是也只能是string。 - 删除表项:
HGET imkey field
- 获取所有key:
HGETALL imkey
,此处如果imkey没有被定义,不会报错而是会提示空数组 - 获取所有value:
HVALS imkey
- 获取哈希表字段数量:
HLEN imkey
- 只有在field不存在时才插入值:
HSETNX key field value
列表
列表元素最多为(1<<32)-1,且只能是string
- 可以通过LPUSH和RPUSH向列表左侧和右侧(打印时是上左下右)添加数据,添加成功时,会返回添加成功后,当前列表的元素数量。
- 可通过 LPOP与RPOP从列表头部/尾部获取并删除一个元素
- 可通过BLPOP与BRPOP从列表头部/尾部获取并删除一个元素,格式是
BLPOP key1 [key2 ] timeout
,如无元素则要等待超时或有元素加入。 - LLEN获取长度
LRANGE key start end
,这是一个前后双闭区间LSET key index value
,根据索引设定值,超出返回会报异常
无需集合
这个无序集合存储的是string,实现类似hashset,大小同样是(1<<32)-1。
主要操作
SADD key value [value2...]
,向指定无需集合添加value,返回1说明添加成功,返回0说明要插入的value值已经存在。SMEMBERS key
可以打印指定集合的值集合SCARD key
获取集合成员数SREM key member [member...]
从指定集合移除成员
有序集合
有序集合也被称为Zset,它将集合的每个值与一个integer相绑定,被称为scores,从而实现有序集合
主要操作:
ZADD key score1 member1 [score2 member2]
添加元素,添加成功返回1,重复返回0,score的值可以重复,但member值不能重复。ZRANGE key start stop [WITHSCORES]
可以列举指定score范围内的值,WITHSCORES参数可以显示member对应的value值- 其他详细操作见:有序集合