Java猿社区—Redis一篇系列—第三章、Redis数据类型
欢迎关注作者博客
简书传送门
专栏传送门:Redis深入学习之路
文章目录
1、Redis的五大数据类型
1.1、string(字符串)
- string是redis最基本的类型,可以理解成与Memcached一模一样的类型,一个key对应一个value。
- string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
- string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M。
1.2、hash(哈希)
- Redis hash 是一个键值对集合。
- Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
类似Java里面的Map<String,Object>
1.3、list(列表)
- Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
- 它的底层实际是个链表。
1.4、set(集合)
- Redis的Set是string类型的无序集合。
- 它是通过HashTable实现的。
1.5、zset(sorted set:有序集合)
- Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
- 不同的是每个元素都会关联一个double类型的分数。
- redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
2、Redis 键(key)
常用命令:
- keys *
- exists key的名字,判断某个key是否存在
- move key db —>将当前数据库的 key 移动到给定的数据库 db 当中
- expire key 秒钟:为给定的key设置过期时间
- ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期
- type key 查看你的key是什么类型
返回 key 的数据类型,数据类型有:
none (key不存在)
string (字符串)
list (列表)
set (集合)
zset (有序集)
hash (哈希表)
3、Redis字符串(String)
常用命令:
- set/get/del/append/strlen
APPEND key value:如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。
STRLEN key:返回 key 所储存的字符串值的长度。 - Incr/decr/incrby/decrby (一定要是数字才能进行加减)
INCRBY key increment:将 key 所储存的值加上给定的增量值(increment)
DECRBY key decrement:key 所储存的值减去给定的减量值(decrement) - getrange/setrange
GETRANGE key start end:获取指定区间范围内的值,类似between…and的关系
SETRANGE key offset value:用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始
从零到负一表示全部 - setex(set with expire)键秒值/setnx(set if not exist)
SETEX key seconds value:将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)
setex:设置带过期时间的key,动态设置。
SETNX key value:只有在 key 不存在时设置 key 的值 - mset/mget/msetnx
mset:同时设置一个或多个 key-value 对。
mget:获取所有(一个或多个)给定 key 的值。
msetnx:同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。 - getset(先get再set)
getset:将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
简单一句话,先get然后立即set