一、基本类型 String
set name emmeet 意为存储一个key为name,值为emmeet的数据,一个简单的key-value方式存储(对一个key重复赋值,新的会覆盖上一个)
取值则使用get name 获取这个key对应的值
setex name 10 emmeet EX指定键值的有效期,这个例子代表存在10秒,10秒之后再次获取name,会获得nil,空
(nil是一个对象值,如果要把一个对象设置为空的时候就用nil;Nil是一个类对象的值,如果要把一个Class类型的对象设置为空的时候就用Nil;NULL是一个通用指针。)
setnx name emmeet 意为存储前会判断这个key是否已存在,返回值为0或1, 0代表已存在,并且不会更改key的值,返回1,则代表这个key的值设置成功 (NX not exists)
setrange key offset value 把一个key的值从下标第几位开始,替换成value
mset key value [key value .......] 同时设置多个key-value
mget key [key ......] 同时获得多个key的值
msetnx 方法同上,但有一个区别,就是只要其中一个key已存在,就会返回0
getset key value 意为设置一个新值,同时返回被覆盖的旧值
getrange key start end 意为获取start下标-end下标之间的值
incr key 递增,返回递增后的值
incrby key increment 意为递增多少,并返回递增后的值
decr decrby 递减,作用同递增
append key value 意为在值后追加一个值,并返回追加后值的长度
strlen key 意为查看值的长度
二、Hash类型
hash类型属于field-value,即属性对应值的方式存储,hash特别适合存储对象,将一个对象存储在hash类型中会占用更少的内存,并且存取整个对象更加方便
hset key field value 基本的存储操作,key代表hash的名称,field属性名,value属性值,返回值为1或0, 1代表存储成功,存储时若hash不存在则先进行创建
hget key field 获取值,key为hash表的名称,field则是需要获取的属性
hsetnx key field value 判断hash表中的属性是否存在,返回值0或1, 0代表已存在
hmset key field value [field value.....] 向一个hash表中存储多个属性和值
hmget key field [field.....] 获取hash表中的多个值
hinvrby key field increment 这个hash表中这个属性的值自增多少
hexists key field 判断hash表中某个属性是否存在,返回值0或1
hlen key 获取一个hash表中存在的属性的数量
hdel key field [field....] 删除hash表中的属性,可同时删除多个,返回值为删除属性的数量
hkeys key 返回一个hash表中所有的key
hvals key 返回一个hash表中所有值
hgetall key 获取hash表中所有field对应的value
三、List类型
list是一个链表结构,主要功能是push(存储数据)、pop(弹出,删除数据)、获取一个范围内的所有值,Redis的list类 型每个子元素都是string类型的双向链表,我可以通过push和pop操作从链表的头部或者尾部 添加删除元素,这样list既可以作为栈,又可以作为队列。
栈和队列的区别,栈类似于一个烧杯一样的容器,第一个数据进入时会存放在最下方,第二个在第一个数据上方,取出的时候为先进后出,队列则类似于一个管道,数据排列一样,但取出时可以从尾部取出,就是先进先出
lpush key value [value....] 从一个list的头部压入元素,key为list的名称,value则是需要存储的值,返回值为元素个数
rpush key value [value....] 原理相同,区别在于从list的尾部压入,返回值为元素个数
lrange key start stop 从一个list中取值,start和stop代表取值的范围,若是0 -1 代表取出所有值
例:
lpush myList 6 5 4 3 2 1 存入元素
lrange myList 0 -1 取出值为 1 2 3 4 5 6
因为存储使用lpush,从头部开始存入,所以依次存入 6 5 4 3 2 1 ,最后存入的在最上方,若使用rpush那每次都会将值存入list的尾部,最后存入的就在最后
linsert key BEFORE/AFTER pivot value 向一个list中间插入数据,B/A代表是在pivot的前面还是后面插入,value则是插入的值,插入成功后返回list的长度
llen key 查看list的长度
lpop key 从一个list的头部内弹出/删除一个元素,返回弹出元素的值
rpop key 尾部弹出/删除,返回弹出元素的值
lset key index value 将一个list内指定下标的元素替换为value
lrem key count value 从一个list内删除count数量的与value相同的元素,返回值为删除的数量
ltrim key start stop 保留list内从start下标到stop下标之内的元素,其余的会删除
rpoplpush source destination 从source尾部弹出一个元素,并将其添加到destination的头部
lindex key index 返回list内制定下标的值