Redis数据类型

Posted MMMirana

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis数据类型相关的知识,希望对你有一定的参考价值。

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散列/哈希是字符串字段和字符串值之间的映射。因此,它们用于表示对象。

  

以上是关于Redis数据类型的主要内容,如果未能解决你的问题,请参考以下文章

Redis的列表(List)类型

如何利用redis来进行分布式集群系统的限流设计

Redis的数据类型之String

在代码片段中包含类型转换

Redis五种基本数据类型的典型应用场景

Redis五大数据类型详解