一、前言
Redis 提供了5种数据类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Zset(有序集合),理解每种数据类型的特点对于redis的开发和运维非常重要。
String是Redis的最基本的数据类型,可以理解为与 Memcached 一模一样的类型,即Key-Value型的数据,String类型是二进制安全的,另外 Redis 的 String 可以包含任何数据,简单的字符串、复杂的字符串(xml、json)、数字(整数、浮点数)、二进制(图片、音频、视频),一个 Redis 中字符串 value 最多可以是 512M。
命令 | 描述 | 用法 |
---|---|---|
SET | 1.将字符串值Value关联到Key2.Key已关联则覆盖,无视类型3.原本Key带有生存时间TTL,那么TTL被清除 | SET key value [EX seconds] [PX milliseconds] [NX|XX] |
GET | 1.返回key关联的字符串值2.Key不存在返回nil3.Key存储的不是字符串,返回错误,因为GET只用于处理字符串 | GET key |
MSET | 1.同时设置一个或多个Key-Value键值对2.某个给定Key已经存在,那么MSET新值会覆盖旧值3.如果上面的覆盖不是希望的,那么使用MSETNX命令,所有Key都不存在才会进行覆盖4.MSET是一个原子性操作,所有Key都会在同一时间被设置,不会存在有些更新有些没更新的情况 | MSET key value [key value ...] |
MGET | 1.返回一个或多个给定Key对应的Value2.某个Key不存在那么这个Key返回nil | MGET key [key ...] |
SETEX | 1.将Value关联到Key2.设置Key生存时间为seconds,单位为秒3.如果Key对应的Value已经存在,则覆盖旧值4.SET也可以设置失效时间,但是不同在于SETNX是一个原子操作,即关联值与设置生存时间同一时间完成 | SETEX key seconds value |
SETNX | 1.将Key的值设置为Value,当且仅当Key不存在2.若给定的Key已经存在,SEXNX不做任何动作 | SETNX key value |
INCR/DECR操作可以利用Redis自动帮助我们对一个Key对应的Value进行加减,在实际工作中还是很常用的。
INCR/DECR操作在 Redis 中的相关命令:
命令 | 描述 | 用法 |
---|---|---|
INCR | 1)Key中存储的数字值+1,返回增加之后的值2)Key不存在,那么Key的值被初始化为0再执行INCR3)如果值包含错误类型或者字符串不能被表示为数字,那么返回错误4)值限制在64位有符号数字表示之内即-9223372036854775808~9223372036854775807 | INCR key |
DECR | 1)Key中存储的数字值-12)其余同INCR | DECR key |
INCRBY | 1)将key所存储的值加上增量返回增加之后的值2)其余同INCR | INCRBY key increment |
DECRBY | 1)将key所存储的值减去减量decrement2)其余同INCR | DECRBY key decrement |