Redis数据类型
1、字符串(String)
Redis中的字符串是一个字节序列。Redis中的字符串是二进制安全的,这意味着它们的长度不由任何特殊的终止字符决定。因此,可以在一个字符串中存储高达512兆字节的任何内容。
# 示例:
# 验证密码
127.0.0.1:6379> auth 1234
OK
# 添加一条数据,key:name,value:"DarkRanger"
127.0.0.1:6379> set name "DarkRanger"
OK
# 查询key为name的数据
127.0.0.1:6379> get name
"DarkRanger"
# 更新key为name数据的,value:"wrcold520"
127.0.0.1:6379> set name "wrcold520"
OK
# 获取更新后的数据,key:name
127.0.0.1:6379> get name
"wrcold520"
# 更新key为"name"数据的key为"username"
127.0.0.1:6379> rename name username
OK
# 查询现有的所有key
127.0.0.1:6379> keys *
1) "username"
# 查询key为"username"的数据
127.0.0.1:6379> get username
"wrcold520"
2、列表(List)
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边),一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
#常用命令:lrange lpush rpush lset lrem len linsert lpop ltrim
##### 1、LPUSH key value [value ...]
# 将一个或多个值 value 插入到列表 key 的表头
# 如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头
127.0.0.1:6379> lpush books "b01" "b02"
(integer) 2
##### 2、LRANGE key start stop
# 返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。
# 下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1表示列表的第二个元素,以此类推。
# 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
127.0.0.1:6379> lrange books 0 -1
1) "b02"
2) "b01"
##### 3、RPUSH key value [value ...]
# 将一个或多个值 value 插入到列表 key 的表尾(最右边)。
# 如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表尾
127.0.0.1:6379> rpush books "b03"
(integer) 3
127.0.0.1:6379> lrange books 0 -1
1) "b02"
2) "b01"
3) "b03"
127.0.0.1:6379> lpush books "b04"
(integer) 4
127.0.0.1:6379> lrange books 0 -1
1) "b04"
2) "b02"
3) "b01"
4) "b03"
##### 4、LSET key index value
# 将列表 key 下标为 index 的元素的值设置为 value 。
# 当 index 参数超出范围,或对一个空列表( key 不存在)进行 LSET 时,返回一个错误。
127.0.0.1:6379> lset books 0 "b0404"
OK
127.0.0.1:6379> lrange books 0 -1
1) "b0404"
2) "b02"
3) "b01"
4) "b03"
##### 5、LREM key count value
# 根据参数 count 的值,移除列表中与参数 value 相等的元素。
127.0.0.1:6379> lrem books 2 "b01"
(integer) 1
127.0.0.1:6379> lrange books 0 -1
1) "b0404"
2) "b02"
3) "b03"
127.0.0.1:6379> rpush books "b15"
(integer) 4
127.0.0.1:6379> lrange books 0 -1
1) "b0404"
2) "b02"
3) "b03"
4) "b15"
##### 6、LINSERT key BEFORE|AFTER pivot value
# 将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。
127.0.0.1:6379> linsert books before "b15" "b1501"
(integer) 5
127.0.0.1:6379> linsert books after "b15" "b1502"
(integer) 6
127.0.0.1:6379> lrange books 0 -1
1) "b0404"
2) "b02"
3) "b03"
4) "b1501"
5) "b15"
6) "b1502"
##### 7、LLEN key
# 返回列表 key 的长度。
# 如果 key 不存在,则 key 被解释为一个空列表,返回 0 .
# 如果 key 不是列表类型,返回一个错误。
127.0.0.1:6379> llen books
(integer) 6
127.0.0.1:6379> lrange books 0 -1
1) "b0404"
2) "b02"
3) "b03"
4) "b1501"
5) "b15"
6) "b1502"
##### 8、LPOP key
# 移除并返回列表 key 的头元素。
127.0.0.1:6379> lpop books
"b0404"
127.0.0.1:6379> lrange books 0 -1
1) "b02"
2) "b03"
3) "b1501"
4) "b15"
5) "b1502"
##### 9、LTRIM key start stop
# 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
127.0.0.1:6379> ltrim books 2 -1
OK
127.0.0.1:6379> lrange books 0 -1
1) "b1501"
2) "b15"
3) "b1502"
3、集合(Set)
Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
集合中最大的成员数为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)。
2、散列/哈希
Redis散列/哈希(Hashes)是键值对的列表。Redis散列/哈希是字符串字段和字符串值之间的映射。因此,它们用于表示对象。