Redis的五大数据类型:
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的映射表,hash特别适合用于存储对象。
类似Java里面的Map<String,Object>
3:list(列表):Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)
或者尾部(右 边)。它的底层实际是个链表
4:set(集合):Redis的Set是string类型的无序集合。它是通过HashTable实现实现的,
5:zset(sorted set:有序集合):
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
详解:
一Redis 键(key):案例:
keys * 查看当前库的所有key
exists key的名字,判断某个key是否存在,1有,0没有
move key db --->将key从当前库移除到指定的库
expire key 秒钟:为给定的key设置过期时间,到期后,key被删除
ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期
type key 查看你的key是什么类型
Redis字符串(String):单值单value
set/get/del/append/strlen
append key value :APPEND 命令将 value
追加到 key
原来的值的末尾。
incr key,增加1 decr key,减1,incrby key number,以number增加,decrby key number 以number减少
getrange/setrange
getrange:获取指定区间范围内的值,类似between......and的关系,从零到负一表示全部
setrange设置指定区间范围内的值,格式是setrange key值 具体值
setex(set with expire)键秒值/setnx(set if not exist)
setex:设置带过期时间的key,动态设置。
将值 value
关联到 key
,并将 key
的生存时间设为 seconds
(以秒为单位)。
如果 key
已经存在, SETEX 命令将覆写旧值。
将 key
的值设为 value
,当且仅当 key
不存在。
若给定的 key
已经存在,则 SETNX 不做任何动作。
mset/mget/msetnx
getset:将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
简单一句话,先get然后立即set
二:
rpoplpush 源列表 目的列表
性能总结:
它是一个字符串链表,left、right都可以插入添加;
如果键不存在,创建新的链表;
如果键已存在,新增内容;
如果值全移除,对应的键也就消失了。
链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。
Redis集合(Set)
Redis哈希(Hash):
Redis有序集合Zset(sorted set)