持续学习&持续更新中…
守破离
【周阳-Redis】【03】Redis数据类型
Redis参考网站
- http://redisdoc.com/
- https://redis.io/
- https://redis.cn
Redis的五大数据类型
https://redis.io/docs/manual/data-types/data-types-tutorial/
1、String(字符串)
- String是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
- String类型是二进制安全的。意思是redis的String可以包含任何数据。比如jpg图片或者序列化的对象 。
- String类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M
2、Hash(哈希,类似Java里的Map)
- Redis Hash是一个键值对集合。
- Redis Hash是一个String类型的field和value的映射表,Hasn特别适合用于存储对象。类似Java里面的Map<String,Object>
3、List(列表)
- Redis List是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
- 它的底层实际是个链表
4、Set(集合)
- Redis的Set是String类型的无序集合。它是通过HashTable实现实现的
5、Zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
Redis命令—key
-
keys *
-
exists key
:判断某个key是否存在,存在返回1,不存在返回0
-
move key db
:移动该key-value到db这个库
-
expire key 秒钟
:为已有的key设置过期时间
-
ttl key
:查看还有多少秒过期,-1表示永不过期,-2表示已过期
-
type key
:查看该key所存储的value是什么类型
Redis命令—String
-
get、set
-
append
-
strlen
-
incr、decr、incrby、decrby(一定要是数字才能进行加减)
-
getrange:获取指定区间范围内的值,类似于[],从0到-1表示全部
-
setrange:
-
setex(set with expire,单位:秒)
-
setnx(set if not exist)
-
mset、mget:m代表more的意思
-
msetnx:当且仅当所有给定key都不存在,有任意一个key存在就执行失败
-
getset:将给定key的值设为value,并返回key的旧值。简单一句话,先get然后set
Redis命令—List
-
lpush、rpush、lrange
-
lpop、rpop
-
lindex,按照索引下标获得元素 (从上到下即从左到右)
-
lrem:从left往right删除N个值为v的元素,返回值为实际删除的数量
-
llen
-
ltrim
-
rpoplpush:
-
lset
-
linsert
List性能总结:
- 它是一个字符串链表,left、right都可以插入
- 如果键不存在,创建新的链表;
- 如果键已存在,新增内容;
- 如果值全移除,对应的键也就消失了。
- 链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。
Redis命令—Set
-
sadd、smembers、sismember
-
scard
-
srem
-
srandmember
-
spop
-
smove
-
sdiff(差集)
-
sinter(交集)
-
sunion(并集)
Redis命令—Hash
- KV模式不变,但V是一个键值对。
- 可以用一个Hash代表一个Model
-
hset、hget
-
hmset、hmget、hgetall
-
hdel
-
hlen
-
hexists
-
hkeys、hvals
-
hincrby、hincrbyfloat
-
hsetnx
Redis命令—ZSet
- 在set基础上,加一个score值。
- 之前set是ket v1 v2 v3,
- 现在zset是key score1 v1 score2 v2
-
zadd、zrange(withscores)
-
zrangebyscore:(代表不包含
-
zrem
-
zcard
-
zcount key score区间
-
zrank
-
zscore
-
zrevrange
-
zrevrangebyscore
-
zrevrank
注意
- 在Reis的CLI下敲命令时,按Tab可以补全命令&自动大写;并且会有命令的提示信息
- Redis干掉Memcache的一个重要原因就是它支持的数据类型丰富
- 不要把内存当作硬盘用
参考
尚硅谷-周阳: 尚硅谷超经典Redis教程.
本文完,感谢您的关注支持!