string数据类型
简介
string类型是Redis最基本的数据类型,因为string类型在Redis中的存值是二进制安全的,因此,只关心存值是否为二进制的字符串。
操作命令
- 添加/修改数据:set key value
- 获取数据:get key
- 删除数据:del key
- 添加/修改多个数据:mset key1 value1 key2 value2 …
- 获取多个数据:mget key1 key2 …
- 获取数据字符个数(字符串长度):strlen key
- 追加信息到原始信息后部(原始信息不存在则新建):append key value
- 设置数值数据增加指定范围的值(数据范围是long的范围)
①incr key
②incrby key increment
③incrbyfloat key increment - 设置数值数据减少指定范围的值
①decr key
②decrby key increment - 设置数据具有指定的生命周期(可用来解决一段时间只能操作一次的场景)
①setex key seconds value
②psetex key milliseconds value
hash数据类型
简介
hash类型是一个hashmap的数据类型,field部分不可重复,重复会覆盖原有数据。
操作命令
- 添加/修改数据:hset key field value
- 添加/修改多个数据:hmset key field1 value1 field2 value2 …
- 获取数据:
①hget key field
②hgetall key - 获取多个数据:hmget key field1 field2 …
- 获取哈希表中字段的数量:hlen key
- 获取哈希表中是否存在指定的字段:hexists key field
- 获取哈希表中所有的字段名:hkeys key
- 获取哈希表中所有的字段值:hvals key
- 删除数据:hdel key field1 [field2]
- 设置指定字段的数值数据增加指定范围的值:
①hincrby key field increment
②hincrbyfloat key field increment
注意事项
- hash类型的value只能存储字符串,不存储其他类型,不存在子嵌套现象
- 每个hash可以存储2的32次方减1个键值对
list数据类型
简介
list类型是一个字符串双向链表,可以在左右两端操作数据
操作命令
- 添加/修改数据:lpush key value1 [value2 ] …
- 获取数据:
①lrange key start stop
②lindex key index
③len key - 获取并删除数据:
①lpop key
②rpop key - 在规定时间内获取并移除数据,若超过规定时间取不到数据则返回(nil):
①blpop key1 [key2] timeout
②brpop key2 [key2] timeout - 移除指定数据:lrem key count value
注意事项
- list中保存的数据都是string类型的,最多存储2的32次方减1个元素
set数据类型
简介
set类型是一个集合(不排序,不重复),不仅可以操作集合的数据,还可以求多个集合的交、并、补集
操作命令
- 添加数据:sadd key member1 [member2]
- 获取全部数据:smembers key
- 删除数据:srem key member1 [member2]
- 获取集合数据总量:scard key
- 判断集合中是否包含指定数据:sismember key member
- 随机获取集合中指定数量的数据:srandmember key [count]
- 随机获取集合中的某个数据并将该数据移出集合:spop key
- 求两个集合的交、并、差集:
①sinter key1 [key2]
②sunion key1 [key2]
③sdiff key1 [key2] - 求两个集合的交、并、差集并存储到指定集合中:
①sinterstore destination key1 [key2]
②sunionstore destination key1 [key2]
③sdiffstore destination key1 [key2] - 将指定数据从原始集合中移动到目标集合中:smove source destination member
注意事项
- set类型不允许数据重复
- set与hash的存储结构相同,但是无法启动hash中存储值的空间
sorted_set数据类型
简介
sorted_set是一个有序集合,在set的基础上给每个元素加一个分数,redis根据每个元素的分数进行排序
操作指令
- 添加数据:zadd score1 member1 [score2 member2]
- 获取全部数据:
①zrange key start stop [WITHSRORES]
②zrevrange key start stop [WITHSRORES] - 删除数据:zrem key member [member …]
- 按条件获取数据:
①zrangebyscore key min max [WITHSRORES] [LIMIT]
②zrevrangebyscore key max min [WITHSRORES] - 条件删除数据:
①zremrangebyrank key start stop
②zremrangebyscore key min max - 获取集合数据总量:
①zcard key
②zcount key min max - 集合交并操作:
①zinterstore destination numkeys key [key …]
②zunionstore destination numkeys key [key …] - 获取数据对应的索引(排名):
①zrank key member
②zrevrank key member - score值获取与修改:
①zscore key member
②zincrby key increment member
注意事项
- score保存的数据存储空间是64位
- score保存的数据也可以是双精度double值
- 数据不能重复,如果重复score则保留最后一次修改