redis基本数据类型:string,list,hash,set,zset,
字符串类型
最基本的数据类型,最大不能超过512MB;
常用命令:
set key value [ex seconds] [px milliseconds] [nx|xx]
mset key value [key value …]
mget key [key …]
结果根据传入顺序返回,没查找到返回nil;
incr key 整数自增;
decr key 自减;
incrbyfloat 自增浮点型;
append key value 追加值
str 内部编码实现:
- int: 8个字节的长整型;
- embstr:小于40个字节的字符串;
- raw: 40个字节及以上的字符串
应用场景:
1.缓存;
2.计数;
3.共享session;
4.验证码限速
Hash
常用命令:
hset key field value
hget key field
hdel key field [field …]
hlen key
hmget key field [field …]
hmset key value [field value …]
hgetall可能引起阻塞(元素太多时)
hexists key field 判断是否存在
hkeys key 获取所有field
hvals key 获取所有value
hgetall 获取所有键值对
hash内部编码实现:
- ziplist: 小于list-max-ziplist-entries 配置(默认512),同时每个元素小于list-max-ziplist-value配置(默认64字节);
- hashtable:ziplist无法满足时,ziplist读写效率下降
list内部编码实现:
4. ziplist: 小于list-max-ziplist-entries 配置(默认512),同时每个元素小于list-max-ziplist-value配置(默认64字节);
5. linkedlist:ziplist无法满足时
x
1.