redis存储的是:key,value格式的数据,其中key都是字符串,value有5种 不同的数据结构
redis 自身是一个 Map,其中所有的数据都是采用 key : value 的形式存储
数据类型指的是存储的数据的类型,也就是 value 部分的类型,key 部分永远都是字符串
目前为止Redis支持的键值数据类型如下:
1)字符串类型 string:2)哈希类型 hash:
map格式:先起一个key,再为这个key对应的 value再起一个key与value
3)列表类型 list:
linkedlist格式,支持重复元素即允许插入相同元素,按照插入头尾顺序排序,可以支持导入元素于头部或者尾部
4)集合类型 set:
不允许重复元素即不允许插入相同元素, 元 素无顺序(即输出所有values的时候不按照插入顺序进行输出,而是随机打乱进行输出)
5)有序集合类型 sortedset:
不允许重复元素即不允许插入相同元素,且相同元素有顺序
注:不管是哪种的数据结构,key的名字不能重复
set:不管是对键第一次赋值还是第二次赋值,SET 命令总是返回 OK;
注意:不能一次性设置多个
SET KEY_NAME VALUE
get: 命令用于获取指定 key 的值。如果 key 不存在,返回 nil 。如果key 储存的值不是字符串类型,返回一个错误
GET KEY_NAME
hset :命令用于为哈希表中的字段赋值;
如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作;
如果字段已经存在于哈希表中,旧值将被覆盖;
如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 ;
如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0
HSET KEY_NAME FIELD VALUE
Hget :命令用于返回哈希表中指定字段的值;
返回给定字段的值;
如果给定的字段或 key 不存在时,返回 nil
HGET KEY_NAME FIELD_NAME
getall 命令用于返回哈希表中,所有的字段和值;
在返回值里,紧跟每个字段名(field name)之后是字段的值(value),所以返回值的长度是哈希表大小的两倍;
以列表形式返回哈希表的字段及字段值;
若 key 不存在或者这个key是空的,则返回空列表
HGETALL KEY_NAME
hdel :返回删除的filed的个数;
如果其中有filed不存在,则不会计不存在的filed的数量
HDEL KEY_NAME FIELD1.. FIELDN
4.list
lpush: 命令将一个或多个值插入到列表头部。;
如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作;
当 key 存在但不是列表类型时,返回一个错误。
返回列表的新长度
LPUSH KEY_NAME VALUE1.. VALUEN
Lrange: 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定;
其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推;
也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推;
返回一个列表,包含指定区间内的元素;
列表不存在或者空列表时返回(empty list or set)
LRANGE KEY_NAME START END
Lpop: 命令用于移除并返回列表的第一个元素;
返回列表的第一个元素;
当列表 key 不存在时,返回 nil
sadd:命令将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略;
假如集合 key 不存在,则创建一个只包含添加的元素作成员的集合;
当集合 key 不是集合类型时,返回一个错误;
返回的是被添加到集合中的新元素的数量,不包括被忽略的元素;
SADD KEY_NAME VALUE1..VALUEN
smembers:命令返回集合中的所有的成员;
不存在的集合 key 被视为空集合;
返回集合中的所有成员
SMEMBERS KEY VALUE
srem:命令用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略;
当 key 不是集合类型,返回一个错误;
被成功移除的元素的数量,不包括被忽略的元素
SREM KEY MEMBER1..MEMBERN
Zadd :命令用于将一个或多个成员元素及其分数值加入到有序集当中;
如果某个成员已经是有序集的成员,那么更新这个成员的分数值,并通过重新插入这个成员元素,来保证该成员在正确的位置上;
分数值可以是整数值或双精度浮点数;
如果有序集合 key 不存在,则创建一个空的有序集并执行 ZADD 操作;
当 key 存在但不是有序集类型时,返回一个错误;
命令返回被成功添加的新成员的数量,不包括那些被更新的、已经存在的成员
ZADD KEY_NAME SCORE1 VALUE1.. SCOREN VALUEN
zrange:返回有序集中,指定区间内的成员;
其中成员的位置按分数值递增(从小到大)来排序;
具有相同分数值的成员按字典序(lexicographical order )来排列;
如果你需要成员按值递减(从大到小)来排列,请使用 ZREVRANGE 命令;
下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推;
你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推;
指定区间内,带有分数值(可选)的有序集成员的列表
ZRANGE key start stop [WITHSCORES]
zcrem:命令用于移除有序集中的一个或多个成员,不存在的成员将被忽略。
当 key 存在但不是有序集类型时,返回一个错误;
返回被成功移除的成员的数量,不包括被忽略的成员
zrem key member [member ...]