Redis--Redis 5大数据类型
Redis 数据类型
1 String( 字符串)
Redis 字符串是字节序列。Redis 字符串是二进制安全的,这意味着他们有一个已知的长度没有任何特殊字符终止,所以你可以存储任何东西,512 兆为上限
示例:
redis 127.0.0.1:6379> SET name kevin
OK
redis 127.0.0.1:6379> GET name
“kevin”
-
append 作用是向键值的末尾追加 value。如果键不存在则将该键的值设置为 value。返回值是追加后字符串的总长度。
-
incr 让当前键值以 1 的数量递增,并返回递增后的值只能是一个整型才可以
-
incrby 可以指定参数一次增加的数值,并返回递增后的值(可以增加一个负数)
-
decr 让当前键值以 1 的数量递减 并返回递减后的值
-
decrby 可以指定参数一次递减的数值,并返回递减后的值(可以减少一个负数)
-
incrbyfloat 可以递增一个双精度浮点数(可以加一个负数)
-
mget/mset 作用与 get/set 相似,不过 mget/mset 可以同时获得/设置多个键的键值
-
del 根据 key 来删除 value(可以同时删除多个,del key1 key2 …),如果是hash类型,可以直接删除根key
2 Hash(hash 表)
Redis 的哈希是键值对的集合。 Redis 的哈希值是字符串字段和字符串值之间的映射,因此它们被用来表示对象.
- hset 存储一个哈希键值对的集合
hset key field value
- hget 获取一个哈希键的值
hget key field
- hmset 存储一个或多个哈希是键值对的集合
hmset key field1 value1 field2 value2 …
- hmget 获取多个指定的键的值
hmget key field1 field2 …
- hexists 判断哈希表中的字段名是否存在 如果存在返回 1 否则返回 0
hexists key field
- hdel 删除一个或多个字段
hdel key field
- hgetall 获取一个根key的键值对的集合
hgetall key
- hvals 只返回字段值
- hkeys 只返回字段名
hvals key
hkeys key
- hlen 返回 key 的 hash 的属性个数
hlen key
3 List( 链 表)
Redis 的链表是简单的字符串列表,排序插入顺序。您可以添加元素到 Redis 的列表的头部或尾部
- lpush key value 向链表左侧添加
- rpush key value 向链表右侧添加
- lpop key 从左边移出一个元素
- rpop key 从右边移出一个元素
- llen key 返回链表中元素的个数 相当于关系型数据库中 select count(*)
- lrange key start end lrange 命令将返回索引从 start 到 stop 之间的所有元素。Redis 的列表起始索引为 0。可以写超出范围的数字,比如0 100. 0 -1代表返回全部
lrange 也支持负索引 lrange key -2 -1 如 -1 表示最右边第一个元素 -2 表示最右边第二个元素,依次类推。 - lindex key index 如果要将列表类型当做数组来用,返回指定索引的元素,索引从 0 开始 如果是负数表示从右边开始计算的索引,最右边元素的索引是-1。
- lset key indexnumber value 是另一个通过索引操作列表的命令,它会将索引为 index的元素赋值为 value。
4 Set( 集合)
- sadd key value 添加一个 string 元素到,key 对应的 set 集合中,成功返回 1,如果元素已经在集合中返回 0.可以直接添加多个
- scard key 返回 set 的元素个数,如果 set 是空或者 key 不存在返回 0
- smembers key 返回 key 对应 set 的所有元素,结果是无序的
- sismember key value 判断 value 是否在 set 中,存在返回 1,0 表示不存在或者 key 不存在
- srem key value 从 key 对应 set 中移除给定元素,成功返回 1,如果 value 在集合中不存在或者 key 不存在返回 0. 可以直接删除多个
5 SortSet( 有序集合)
-
zadd key score value 将一个或多个 value 及其 socre 加入到 set 中
-
zrange key start end 0 和-1 表示从索引为 0 的元素到最后一个元素(同 LRANGE 命令相似)
-
zrange key 0 -1 withscores 也可以连同 score 一块输出,使用 WITHSCORES 参数
-
zremrangebyscore key start end 可用于范围删除操作 (根据分数删除)