Redis支持五大数据类型。
String:二进制安全,可以存放任何数据,最多可存放512M数据。
hash:类似于java中的hashmap,redis中主要存放对象。
list:类似于java中的LinkedList,是一个双链表。
set:类似于hashset,数据无序,不可重复。
zset:有序集合。
redis 通过type key 查询当前key的类型:
一、String类型:
set key value 创建String 类型键值对(如果key存在 旧的value 会被覆盖)。
get key 获取key的value。
append key value 在原始的key所对应的value基础上拼接新的value。
strlen key 获取value的长度
incr/decr key 对value的值加/减1(value 必须是数字)
incrby/decrby key num 对value的值加/减 num (value必须为数字)
setrange key index value 从value的index下标开始设值,将新的value放入下表起始字段,进行旧value的更改。
getrange key index1 index2 获取value从index1到index2的值。
setex key time value 对key设值过期时间。
setnx key value 设值新的的键值对,新的键值对在数据库中不存在。
mset key1 value key2 value key3 value 同时这时多个key value 键值对。(如果数据库中不包含即将设值的key 数据库会进行增添)
mget key1 key2 同时获取多个key。
msetnx key1 value1 key2 value2 同时设值多个key value(设值的key必须原数据库中不存在,否则都不生效)
二、List类型:
lpush/rpush key value1 value2… 创建list类型的键值对。 (lpush从右向左存、rpush从左向右存)
lrange key index1 index2 获取index1~index2之间的值。(如果全取index1 = 0,index2 = -1)
lpop/rpop key 弹出栈顶/栈底元素。(弹出后原list会发生改变)。
lindex key index list中index 所对应的值
llen key 获取list长度。
lrem key num num 删除list 中的几个值(图中为删除l1中的2个2)。
ltrim key index1 index2 截取list index1到index2的部分。(改变原list)
rpoplpush key1 key2 。将key1的栈底给key2的栈顶。
lset key index value 将key下标所对应的值改成value。
linsert key before/after value newvalue 将newvalue放在value的前/后(如果value重复,newvalue放入第一个value出现的前后)。