redis一共分为五种基本数据类型:string、hash、list、set、zset
以下对Redis类型及所对应的命令进行介绍,注意:在Redis中,命令是忽略大小写的,而key是不忽略大小写的
。
String类型是包含很多种类型的特殊类型,并且是二进制安全的,比如序列化的对象进行存储,比如一张图片进行二进制存储,简单字符串、数值等等。
赋值
SET key value #设置值,(多次设置重复key会覆盖value)
取值
GET key #取出key所对应的value
取值并赋值
GETSET key value #取出老的值,赋上新的值
数值增减
注意:
整数
时,才能使用该命令操作数值的增减。原子
操作INCR key #递增数字
INCRBY key increment #增加指定的整数
DECR key #递减数值
DECRBY key decrement #减少指定的整数
仅当不存在时赋值
即key只能赋值一次,如果不存在进行设置,存在就不需要设置,返回0
使用该命令可以实现分布式锁功能
SETNX key value
其他命令
APPEND key value #向键值的末尾追加value,如果键不存在则将该键的值设为value,返回值是追加后字符串的总长度
STRLEN key #返回键值的长度,如果键不存在则返回0
MSET key value [key value..] #同时设置多个键值
MGET key [key..] #同时获取多个键值
SETEX key time value #设置键的有效期为time秒,time秒后返回nil
SETRANGE key index newstr #替换字符串,将键的第index位开始替换为newstr
Hash类型是String类型的field和value的映射表,或者说一个String集合。它特别适合存储对象,相比较而言,将一个对象类型存储在Hash类型里要比存储在String类型里占用更少的内存空间,并方便存取整个对象。
赋值
HSET key field value #存储一个键为key,字段名为field,值为value的数据
HMSET key field value [field value..] #存储多条数据
取值
HGET key field #获取键中字段名为field的值
HMGET key field [field] #获取键中多个字段的值
删除字段
HDEL key field [field..] #删除一个或多个字段
增加数字
HINCRBY key field increment #将键的field属性增加increment
其他命令
HSETNX #key如果不存在就进行设置,如果存在就不设置
HLEN key #返回所有key中字段的数量
HKEYS key #返回key里所有的字段
HVALS key #返回key里所有字段的值
HGETALL key #获取key里面的所有field和value
List是一个链表结构的集合,主要功能有push、POP、获取元素等。List类型是一个双端链表的结构。通过相关操作进行集合头部或尾部添加删除元素,List即可作为栈,又可作为队列。
向列表两端增加元素
LPUSH key value[value..] #从头部加入元素
RPUSH key value[value..] #从有部加入元素
从列表两端弹出元素
LPOP key #弹出key头部元素
RPOP key #弹出key尾部元素
获取列表中元素的个数
LLEN key
获取列表中所有的元素
LRANGE key 0 -1 #获取指定列表内的所有元素
set集合是string类型的无序集合,集合key所对应的值不能重复,set是通过hashtable实现的,对集合我们可以取交集、并集、差集
增加删除元素
SADD key member [member..] #增加集合的元素
SREM key member [member..] #删除集合中的元素member
获得集合中的所有元素
SMEMBERS key
集合的差集运算A-B
SDIFF key [key..]
集合的交集运算A∩B
SINTER key [key..]
集合的并集运算A∪B
SUNION key [key..]
获得集合中元素的个数
SCARD key
从集合中弹出一个元素
SPOP key #随机返回删除的key中的元素
在set集合类型的基础上,有序集合中的每个元素都关联一个分数,这使得我们不仅可以完成插入、删除和判断元素是否存在在集合中,还能够获得分数最高或最低的前N个元素,获取指定分数范围内的元素等与分数有关的操作。
增加元素
ZADD key score member [score member..] #向有序集合添加一个元素,该元素如果存在,则更新顺序
获得排名在某个范围的元素列表
ZRANGE key 0 -1 #查看有序集合key中的所有value
获取元素的分数
ZSCORE key member
删除元素
ZREM key member [member..] #删除名称为key的有序集合中的元素value
KEYS
KEYS pattern #查询满足给定pattern的所有key
KEYS * #返回所有key
DEL
DEL key #删除指定的key
EXPIRE
redis在实际使用过程中更多的用作缓存,然而缓存的数据一般都是需要设置生存时间的,即到期后数据销毁
EXPIRE key seconds #设置key的生存时间(单位:秒)
TTL key #查看key剩余的生存时间
PERSIST key #清除生存时间
RENAME
重命名key
RENAME key
TYPE
显示指定key的数据类型
TYPE key
EXISTS
确认一个key是否存在
EXISTS key