Redis的基础数据类型详解

redis一共分为五种基本数据类型:string、hash、list、set、zset
以下对Redis类型及所对应的命令进行介绍,注意:在Redis中,命令是忽略大小写的,而key是不忽略大小写的


String数据类型


String类型是包含很多种类型的特殊类型,并且是二进制安全的,比如序列化的对象进行存储,比如一张图片进行二进制存储,简单字符串、数值等等。
赋值

SET key value #设置值,(多次设置重复key会覆盖value)

取值

GET key #取出key所对应的value

取值并赋值

GETSET key value #取出老的值,赋上新的值

数值增减
注意:

  1. 当value为整数时,才能使用该命令操作数值的增减。
  2. 数值递增都是原子操作
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数据类型


Hash类型是String类型的field和value的映射表,或者说一个String集合。它特别适合存储对象,相比较而言,将一个对象类型存储在Hash类型里要比存储在String类型里占用更少的内存空间,并方便存取整个对象。
赋值

HSET key field value #存储一个键为key,字段名为field,值为value的数据

Redis的基础数据类型详解_第1张图片

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类型


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类型


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中的元素



Zset类型


在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

你可能感兴趣的:(编程历程,Redis)