您的位置:首页 > 数据库 > Redis

Redis学习笔记(2)-Redis数据类型

2016-07-03 07:59 549 查看

注意

不同的平台有不同的客户端,如java的Jredis,PHP的Predis和官方的客户端redis-cli。

本例子使用的命令都是运行在redis-cli客户端下的命令。

Redis不支持类型嵌套,比如散列类型的值不能是集合类型,等。

所有类型的值只能是字符串。

基础命令

KEYS key

获得键列表

key支持通配符:

? 匹配一个字符

* 匹配任意字符

[] 匹配括号间的字符

\? 转义字符

EXISTS key

判断键是否存在,存在返回1,不存在返回0。

DEL key

删除键,成功返回1,不成功返回0,可以多个键,用空格间隔。

TYPE key

获得键值的数据类型

Redis的数据类型是明确的,不同数据类型之间不能混用。

比如,散列类型的值不能是列表类型。

字符串类型

字符串类型是最基础的类型,其他的类型其实都是不同格式的字符串类型。

SET key value

向缓存中注入一个键值对,成功返回OK。

GET key

从缓存中通过键得到一个字符串,不存在时返回空(nil)。

INCR key

某个键自增长,当初始化值不是整数时,会返回错误。

散列类型

散列类型适合储存类似于对象的这种数据

散列的组成为

键-字段-字段值

可以对应为对象的

对象-属性-属性值

HSET key filed value

设置某个散列(key)与散列中某个属性(filed)字段与其字段的值(value)。

散列的新增和更新是自动判断的

HGET key filed

获取某个散列下某个属性的值。

HMSET key filed value filed value filed value…

设置某个散列下多个属性字段与字段值。

HMGET key filed filed filed…

获取某个散列下多个属性的值。

HGETALL key

获取某个散列所有的属性与属性值。

HEXISTS key filed

判断某个散列下某个属性是否存在,是1,否0。

HSETNX key filed value

如果某个散列的属性与属性值,不存在就赋值,存在就无操作。

HINCRBY key filed value

某个散列的某个属性的属性值自增长,当初始化值不是整数时,会返回错误。

HDEL key filed

删除某个散列表中的某个属性。

列表类型

列表类型内部使用的是双向链表实现的,可以储存一个有序的字符串列表。

借助列表,Redis还可以当做队列使用,一定程度上能解决消息队列的问题。

LPUSH key value value…

某列表(key)左端增加一个或多个元素,返回值表示增加元素后列表的长度。

RPUSH key value value…

某列表右端增加一个或多个元素,返回值表示增加元素后列表的长度。

LPOP key

某列表左边弹出一个元素,返回元素值

RPOP key

某列表右边弹出一个元素,返回元素值

LLEN key

获取列表长度

LRANGE key start stop

获取key中列表的片段

从start开始,stop结束

最左边以0为开始值,返回值包含stop元素

此命令不会删除该片段

负数索引表示从右向左,正数索引表示从左往右

LREM key count value

删除key列表中count个值为value的元素,返回删除的个数。

count大于0表示从左往右

count小于0表示从右往左

count等于0表示删除所有值为value的数

集合类型

可以将集合类型当做一个set

SADD key value value…

向集合(key)中新增一个或多个元素,如果重复,则忽略,返回成功加入元素的个数。

SREM key value value…

删除集合中一个或多个元素,返回成功删除的个数

SMEMBERS key

返回集合中所有元素

SISMEMBER key value

判断value是否在集合中,存在返回1,不存在返回0。

SDIFF key1 key2 key3…

执行差集运算,key1-key2-key3,即属于key1但不属于key2和key3的值。

返回结果为具体的值,而不是集合。

SINTER key1 key2 key3…

执行交集运算,所有属于key1并属于key2并属于key3的值。

返回结果为具体的值,而不是集合。

SUNION key1 key2 key3…

执行并集运算,key1+key2+key3,然后取得的值去重复。

返回结果为具体的值,而不是集合。

有序集合类型

有序集合能比较容易的调整元素的位置,不像列表。

ZADD key score value score value score value…

向某个有序集合(key)中增加元素(value)与元素对对应的分数(score),返回值是成功新增的个数。

score 分数,可以是整数也可以是双精度浮点数。

value 值,值若重复,会用现在的分数替换原来的分数。

ZSCORE key value

获得元素的分数,返回值为分数。

ZRANGE key start stop [WITHSCORE]

ZREVRANGE key start stop [WITHSCORE]

按照score的排序获得第start个到stop个的value。

start可以从0开始,获得的数据包含stop。

WITHSCORE表示是否也返回分数

ZRANGE为score的从小到大排序

ZREVRANGE为score的从大到小排序

ZRANGEBYSCORE key min max [WITHSCORE]

获得指定分数范围的元素,返回值为value,排序方式为分数从小到大。

min可以用-inf表示负无穷,max可以用+inf表示正无穷。

WITHSCORE表示是否也返回分数。

ZINCRBY key score value

给value元素增加score分,返回值为增加后的分数。

负分可以表示减分。

如果指定的元素不存在,先赋值0,再做增加。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis