Redis数据类型
Redis键(Key)
常用命令
keys *:查询所有的key
exists key:判断某个key是否存在
move key db:将key值移动到其他库
expire key:为给定的key设置过期时间
ttl key:查看还有多少秒过期,-1表示永不过期,-2表示已过期
type key:查看你的key是什么类型
select db:切换库
Redis五大数据类型
1.String(字符串)
String是redis最基本的类型,一个key对应一个value
String类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象
String类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M
常用命令
set key:设置key值
get key:获取key值
del key:删除key值
append key:往key追加值
strlen key:key值的长度
getrange key:获取指定区间范围内的值,类似between...and的关系
setrange key:设置指定区间范围内的值(替换区间内的值),格式是setrange key值
setex(set with expire):设置key存活时间,语法(SETEX KEY_NAME TIMEOUT VALUE)
setnx(set if not exist):在指定的 key 不存在时,为 key 设置指定的值(设置成功,返回 1 。 设置失败,返回 0 。)
mset:用于同时设置一个或多个 key-value 对。
mget: 命令返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。
msetnx :命令用于所有给定 key 都不存在时,同时设置一个或多个 key-value 对。
值是数字才能进行操作的命令
incr key:对值加1
decr key:对值减1
incrby key num:对值加多少(num为需要加的数字)
decrby key num:对值减多少(num为需要减的数字)
2.List(列表)
是简单的字符串列表,按照插入顺序排序,你可以添加一个元素导列表的头部(左边)或者尾部(右边)
它的底层实际是个链表
常用命令
lpush key:(先进后出)
rpush key:(先进先出)
lrange key:
lpop与rpop
lindex key:按照索引下标获取元素(从上至下)
llen key:list的长度
lrem key:删除N个值为多少元素
ltrim key:截取指定范围的值后再赋值给key
rpoplpush key1 key2:
lset key index value
linsert key before/after key1 key2
3.Set(集合)
是string类型的无序集合。它是通过HashTable实现的
常用命令:
sadd/smembers/sismember
sismember 命令判断成员元素是否是集合的成员(0不是 1 是)。
scard key:获取集合里的元素个数
srem key value:删除集合中元素
srandmember key num(数量):随机出几个数
spop key:随机出栈(移出)
smove key1 key2 value:把key1的值移动到key2
sdiff:差集
sinter:交集
sunion:并集
4.Hash(哈希,类似java里的Map)
是一个键值对集合
是一个string类型的field和value的映射表,hash特别适合用于存储对象,类似java中的Map<String,Object>
常用命令
hset
hget
hmset
hmget
hgetall
hdel
hlen
hexists key:在key里面的某个值存不存在
hkeys:获取key
hvals:获取value
hincrby:某个元素的值进行加法运算
hincrbyfloat:某个元素的值进行加法运算(小数)
hsetnx:是否存在,存在就不添加,不存在则添加
5.Zset(sorted set:有序集合)
zset和set一样也是string类型元素的集合,且不允许重复的成员
不同的是每个元素都会关联一个double类型的分数,用这个分数来为集合中的成员进行从小到大的排序,
zset的成员是唯一的,但分数(score)却可以重复
常用命令
zadd
zrange
zrangebyscore key 开始score 结束score
不包含
limit
zrem key 某个score对应的值 ,进行删除
zcard
zcount key score区间
zrank key values值 :获取下标值
zscore key value值:获得分数
zrevrank key value值:获得倒序后的下标值
zrevrange:倒序