本文概览:介绍redis五种数据类型常用的命令。

1 简介

Redis作用和其他缓存一样,就是为了减少读取数据库读取次数通过保存一个键值对来实现,但是Redis相对于其他缓存具有两种属性,这两种属性是Redis的标识:

(1)对于值的类型,提供了五种类型:字符串、list、set(相对于list优点就是数据不可以重复)、HashMap、有序集合(也是一个map结构,key是保存的对象,value是分数)。

(2)支持持久化。

2 五种数据类型和相应命令行

2.1 字符串

主要包含字符串、整数、浮点数 三种类型。

1、初始化

最开始初始化一个key时,需要如下命令

2、整数

(1)incr

解释:将整数自动加1

命令格式为:

举例:

(2)decr

解释:将整数减1。

命令格式:

举例:

(3)incrby

解释:将整数增加指定的amount

命令格式:

举例:

(3)decrby

解释:将整数减去指定的amount

命令格式:

举例为

3、浮点数

(1)incrbyfloat

解释: 将浮点数增加指定amount,可以正数,也可以是负数

命令格式为

举例为:

4、字符串

(1)setnx

解释:将 key 的值设为 value ,当且仅当 key 不存在。如果设置成功返回1,否则返回0.

命令格式为:

举例:

(2)append

解释: 在key对应的value后面拼接字符串

命令格式:

举例:

(3)getrange

解释:获取字符串偏移量start到偏移量end的值

命令格式:

举例:

(4)setrange

解释:把字符串start偏移量start后面的值替换为value。

命令格式:

举例:

2.2 列表List

分为阻塞和非阻塞两类。

1、初始化

通过 rpush 和 lpush来进行初始化,不能通过set 命令,因为set命令是针对String类型的。

同样获取list元素时,也不能使用get命令,因为  “get  key”也是针对String类型的,对于List需要通过lindex和lrange命令来查看元素。

2、非阻塞

(1)rpush  和 lpush

解释:用于初始化和新增元素。rpush从 右端添加元素;lpush从左端添加元素。

命令格式:

举例:

(2)lindex 和 lrange

解释:用于查询列表的元素。lindex用于返回偏移量为index的数据;lrange用来返回偏移量start到偏移量end的元素。

命令格式:

举例:

(3)rpop和lpop

解释:用于查询和删除列表元素。rpop从列表右边查询并删除元素;lpop 从列表左边查询并删除元素。

命令格式:

举例:

(4)ltrim

解释:用于截取队列中元素

命令格式:

举例:

2、阻塞

当使用rpop和lpop获取元素时,如果key对应的列表list是空的,则此时直接返回null。如果在列表为空时,我们希望可以等待一段时间,然后才返回值,此时引入了阻塞类型的命令blpop和brpop命令

(1)blpop和brpop命令

除了阻塞,blpop和brpop相比lpop/rpop还有一个属性就是可以对多个队列顺序执行操作。命令格式:key1、key2等标识多个队列

举例:

2.3 集合Set

1、初始化

通过sadd命令来初始化set。

2、基本操作

(1)SADD

解释:将一个元素添加到set中

命令格式:

举例:

(2)smembers

解释:获取key对应set中所有元素

命令格式:

举例:

参考 sadd命令中例子

(3)scard

解释:获取 key对应set包含元素的个数

命令格式:

举例:

参考 sadd命令中例子。

(4)srem

解释:删除key对应set中指定的元素,可以是多个

命令格式:

举例:

2、集合操作

(1)sidff

解释:返回存在第一个集合,但是不存在其他集合的元素

命令格式:

举例:

(2) sinter

解释:不同集合的交集

命令格式:

举例:

(3)sunion

解释:不同集合的并集

命令格式:

举例:

2.4 HashMap

1、初始化

使用hmset命令进行初始化

2、hmset

解释:新增或者更新key对应map的键值对.可以指定多个键值对

命令格式:

举例:

3、hget和hgetall

解释:获取key对应的hashmap的键对应的值

命令格式:

举例:

参考hmset中例子

4、hdel

解释:删除key对应的hashmap中的键

命令格式:

举例:

5、hkeys和hvals

解释:hekys返回所有键值,hvals,返回所有values.

命令格式:

举例:

6、hexists

解释:在key对应的hashmap中是否包含某一个键。如果存在返回1,否则返回0

命令格式:

举例

2.5  有序集合

1、初始化

通过zadd操作

2、基本操作

(1)zadd

解释:初始化或者新增元素

命令格式:

举例:

# 新增或者初始化

(2)zincrby

解释:给成员的积分累加amount。对于成员的积分的值都是整型。

命令格式:

举例:

2、获取成员总数信息

(1)zcard

解释:获取key对应的有序集合中成员总数

命令格式:

举例:

(2)zcount

解释:返回介于min和max之间的成员变量,包含积分等于min和max的成员

命令格式:

举例:

3、获取一个成员排名和积分信息

(1)zrank

解释:返回成员的排名

命令格式:

举例:

(2)zscore

解释:返回一个成员积分

命令格式:

举例:

4、获取成员

(1)zrevrange

解释:获取排名在min和start之间的成员

命令格式:

举例:

(2) zrangebyscore

解释:获取积分在min和start之间的成员

命令格式:

举例:

3 关于key操作的命令

1、DEL

解释:删除一个key

命令格式

2、expire

解释:设置key的过期时间

命令格式:

3、exists

解释:判断key是否存。如果存在返回1,否则返回0。

命令格式:

(全文完)

分类&标签

发表评论

电子邮件地址不会被公开。 必填项已用*标注