Redis五大数据类型
Redis的五大数据类型
String(字符串)
- 一个key对应一个value
- String类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。
- 一个redis中字符串value最多可以使512M
- redis hash是一个键值对集合
- redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象
Hash(哈希,类似java里的Map)
类似Java里面的Map<String,Object>
List(列表)
Redis列表是简单的字符串列表,按照插入顺序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
他的底层实际是个链表
Set(集合)
String类型的无序集合,不重复
Zset(sorted set:有序集合)
与set不同的是每个元素都会关联一个double类型的分数
Redis命令大全
Redis 键(key)常用案例
keys * 查询所有的key
exists key的名字,判断某个key是否存在
move key db 当前库就没有了,被移动到指定的库
expire key秒钟:为给定的key设置过期时间
ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期
type key查看你的key是什么类型
Redis字符串(String)
单值单value
案例:
set/get/del/append/strlen
Incr/decr/Incrby/decrby,一定要数字才能进行加减
getrange/setrange
getrange:获取指定区间范围内的值,类似between……and的关系(0到-1表示)
setrange:设置指定区间范围的值,格式是setrange key值 具体指(从第几位开始更换为具体的值)
setex(set with expire)键秒值/sentx(set if not exist)
mset/mget/msetnx
getset(先get再set)
Redis列表(List)
单值多value
lpush(倒序保存)/rpush(正序保存)/lrange(查询)
lpop(删除第一个)/rpop(删除最后一个)
lindex,按照索引下标准获得元素(从上到下)
llen(list长度)
lrem key 删N个 value
ltrim key 开始index 结束index,截取指定范围的值后再赋值给key
rpoplpush源列表 目的列表
lset key index value(替换值)
linsert key before/after值1 值2(将值1之前/之后添加一个值2)
10. 总结:
他是一个字符串链表:left、right都可以插入添加
如果键不存在,创建新的链表
如果键已存在,新增内容
如果值全移除,对应的键也就消失了
链表的操作无论是头和尾效率都极高,但假如是对中间的元素进行操作,效率就很惨淡了
Redis集合(set)
单值多value
sadd(添加)/smembers(查询)/sismember(判断值是否存在)
scard,获取集合里面的元素个数
srem key value 删除集合中元素
srandmember key 某个整数(随机出几个数)
spop key 随机出栈
smove key1 key2 在key1里某个值 作用是将key1里的某个值赋给key2
数学集合类
a) 差集:sdiff(在第一个set里面而不在后面任何一个set里面的项)
b) 交集:sinter
c) 并集:sunion
Redis哈希(Hash)
KV模式不变,但V是一个键值对
hset(创建)/hget(获取)/hmset(创建多个)/hmget(查询多个)/hgetall(查询全部)/hdel(删除)
hlen(查询长度)
hexists key 在key里面的某个值的key(判断key是否存在)
hkeys(查看所有的键)/hvals(查看所有的值)
hincrby(给value值+整数值)/hincrbyfloat(给value值+小数值)
hsetnx(添加不存在的键值)
Redis有序集合Zset(sorted set)
在set基础上,加一个score值。之前set是k1 v1 v2 v3 现在zset是k1 score1 v1 score2 v2
zadd/zrange
zrangebyscore key 开始score 结束score
a) ( 不包含
b) Limit作用是反会限制 limit开始下标步 多少步
zrem key 某score下对应的value值,左右时删除原素
zcard /zcount key score区间 /zrank key values值,作用是获得下标志、zscore key对应值,获得分数
zrevrank key values值,作用是逆序获得下标
zrevrange(逆序)
zrvrangebyscore key 区间(逆序)