Redis的5种数据类型和常用命令

1 数据类型

redis中以键值对存储数据,一个键对应一个值,键名不能重复,键的类型为字符串,值的类型有5种:string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)
注意:如果某个键值对存储了某个数据类型的值,不能修改为其他的数据类型。

2 操作命令

2.1键命令

	 1)查找键(支持正则表达式):keys 表达式  
			 	 如:keys *a* 查找名字中包含a的键
	 2) 判断键是否存在,存在返回1,否则返回0:exists 'key'
	 3) 查看键对应的value的类型,若键不存在则返回none:type 'key'
	 4) 删除键,值同时会被删除:del 'key1'  'key2' ...
	 5) 设置键过期时间,以秒为单位:expire 'key' t
	 6)查看键有效时间,以秒为单位(键过期返回-2,未设置键的有效时间返回-1,其他根据实际有效时间返回):ttl 'key'

2.2 数据相关命令

2.2.1 string类型

2.2.1.1 简介

	1)string 是redis最基本的类型
	2)最大存储512MB数据
	3)string类型是二进制安全的,可以存储任何数据,比如数字、图片等

2.2.1.2 常用操作命令

	1)增加 / 修改
		*如果设置的键不存在则为添加,否则为修改*
			- 设置键值:set 'key' 'value'
			- 设置键值及过期时间,以秒为单位:setex 'key' t 'value'
			- 设置多个键值:mset 'key1' 'value1' 'key2' 'value2' ...
			- 追加值(如果键不存在,则相当于新建):appen 'key' 'value'
	2)获取
			- 根据键获取值,如果键不存在则返回nil:get 'key'
			- 根据多个键获取多个值:mget 'key1' 'key2' ...

2.3.1 hash类型

2.3.1.1 简介

	1)hash是一个string 类型的field和value的映射表。采用key—field—value的方式。一个key可对应多个field,一个field对应一个value。
	2)value内部是一个HashMap,如果该Map的成员比较少,则会采用一维数组的方式来紧凑存储该MAP。

2.3.1.2 常用操作命令

	1)增加 / 修改
	- 设置单个属性:hset 'key' 'field' 'value'
	- 设置多个属性:mhset 'key' 'field1' 'value1' 'field2' 'value2' ...
	2)获取
	- 获取指定键的所有属性:hkeys 'key'
	- 获取指定键的单个指定属性的值:hget 'key' 'field'
	- 获取指定键的多个指定属性的值:hmget 'key' 'field1' 'field2'
	- 获取指定键的所有属性:hvals 'key'
	- 获取指定键的所有属性及其对应的值:hgetall 'key'
	3)删除
	- 删除指定键的单个或多个指定属性,属性对应的值会被一起删除:hdel 'key' 'field1' 'field2' ...

2.4.1 list类型

2.4.1.1 简介

	1)list为双向链表结构,存储的元素类型为string
	2)有序,可以通过索引下标获取元素或某个范围内元素列表, 列表元素可以重复
	3)一个列表最多可以存储2^32 -1个元素

2.4.1.2 常用操作命令

	1)增加 / 修改
	- 在左侧插入数据:lpush 'key' 'value1' 'value2' ....
	- 在右侧插入元素:rpush 'key' 'value1' 'value2' ....
	- 在指定元素的前或后插入新元素:linsert 'key' before/after 'value1' 'value'
	- 设置指定索引位置的元素值:lset 'key' index 'value'
	2)获取
	- 获取链表中指定范围内的元素:lrange 'key' start stop
		1. start stop分别为起始 / 结束元素的下标
		2. 索引从左侧开始,起始为0
		3. 索引可以是负数,表示从尾部开始,最后一个元素为-1
	- 获取链表中指定下标的元素:lindex 'key' index
	3)删除
	- 将列表中前count次出现的值为value的元素移除:lrem 'key' count 'value'
		1. count > 0  从头开始
		2. count < 0  从尾开始
		3. count = 0   移除所有

2.5.1 set类型

2.5.1.1 简介

	1)无序集合
	2)元素类型为string,元素唯一,不可重复
	3)集合元素不可修改

2.5.1.2 常用操作命令

	1)增加
	- 给指定key增加一个或多个元素:sadd 'key' 'member1' 'member2' ...
	2)获取
	-  获取指定key的所有元素:smembers 'key'
	3)删除
	- 删除指定key的指定元素:srem 'key' 'member'

2.6.1 zset类型

2.6.1.1 简介

	1)有序集合
	2)元素类型为string,元素唯一,不可重复
	3)每个元素都会关联一个分数,分数可以为负数,通过分数将元素从大到小排序
	4)集合元素不可修改

2.6.1.2 常用操作命令

	1)增加
	- 给指定key增加一个或多个元素,并设置分数:zadd 'key' score1 'member1' score2 'member2' ....
	noted:如果增加的值存在,则以上命令相当于修改值的分数;如果多个值分数相同,则值按照字典顺序排序
	2)获取
	- 获取指定范围内的元素 :zrange 'key' start stop
		1. start stop分别为起始 / 结束元素的下标
		2. 索引从左侧开始,起始为0
		3. 索引可以是负数,表示从尾部开始,最后一个元素为-1
	- 获取分数在指定范围的元素:zrangebyscore 'key' min max
	- 获取指定元素的分数:zscore 'key' 'member'
	3)删除
	- 删除指定元素:zrem 'key' 'member1' 'member2' ....
	- 删除分数在指定范围的元素:zremrangebyscore 'key' min max

猜你喜欢

转载自blog.csdn.net/vale_/article/details/105784337
今日推荐