redis五大基本数据类型及常用命令。
这里的五大基本数据类型针对的是key-value 中的value类型。
一,String。
set keyname value :增加一个key为keyname,value为value的键值对。需要注意,如果原来存在这个keyname,那么这里的增加实际上是先删除原来相同的keyname及其value,然后再新加这个keyname。所以会把原来键的过期时间这些也一起删除了。如果想保留原来的过期时间,用setrange代替set。
get keyname : 获取对应keyname的value。
setex keyname secends value :向redies数据库添加一个键值对,并设置过期时间为secend秒。
mset keyname value keyname2 value2... : 这个用来一次增加多个键值对,需要注意的是,如果增加的键值对已经存在,那么会删除原来的键值对,重新添加。
mget keyname keyname2... : 这个指令用来一次获取多个key对于的value并返回。
setnx keyname value :这个指令也是用来增加一个键值对的,不过它会判断要增加的键值对是不是已经存在,已经存在的话,会插入失败。
msetnx keyname value keyname2 value2... : 这个指令也是一次插入多个键值对,不过如果插入的键名称有一个及以上已经存在,那么全部都会插入失败,原子性。
strlen keyname : 返回对应键名称的value的长度。
append keyname value : 向指定的key的value追加字符串,比如原来name=huchuan ,append name 123, 那name=huchuan123。
del keyname keyname2... : 删除多个对应键名称对应的键值对。
getrange keyname start end : 获取keyname对应的索引为start到end的字符串,和Java中的subString(start,end)不同的是,redies里的这个命令两边都是闭区间。
getrange keyname 0 -1 : 这个是获取对应keyname对应的从0开始到末尾的字符串,start开始,end为-1,表示从start开始到末尾的字符。
setrange keyname offset value : 这个指令是向keyname对应的键的value从offset索引后的值替换成value,和append类似,不过不会像set那样先删除,后增加。
incr keyname : 将对应的keyname的value的值加1,比如age=21,执行了incr age后,age=21。需要注意的是,对应keyname的value的值一定得是数值,不然会报错。
decr keyname :和incr相反,这个指令是用来对value值减1的。
incrby keyname incrment : 这个和incr类似,不过要更强大,强大在于它可以指定每次增加的值,即偏移量incrment。
decyby keyname incrment : 和decr类似,也是用来对value每次减去对应的值的。每次减去的值为incrment。
二,list。
lpush keyname value1 value2 value3... : 这个指令是用来添加一个list类型的key。从左边插入。
rpush keyname value1 value2 value3... : 向一个value为list的key从右边依次插入value。
lpop keyname : 从kename的values左边取出一个value。取出后,key里边会把这个value删除,只会删除一个,其它还会存在。
rpop keyname : 从kename的values右边取出一个value。取出后,key里边会把这个value删除,只会删除一个,其它还会存在。
rpoplpush source destination : 从keyname为source的values中从右边取出一个value,加入到keynaem为destination的values中。
lrange keyname start end : 这个是用来查询出索引从start开始,到end的值。两端都是闭区间。
lrem keyname count element : 从keyname对应的值中删除enement,count表示删除的个数。
lindex keyname index : 获取keyname对应的索引下标查找这个值并返回。
linsert keyname after/before pivot element : 在keyname对应的list中的elemnet元素的后边或者前边添加一个值(pivot)
llen keyname : 获取对应keyname对应list的长度。
lset keyname index element : 将keyname指定下标索引(index)的值替换成新的值(element)。
ltrem keyname start end : 修剪keyname的list,类似于String的subString(start,end),不过却是前后都是闭区间。
lpushx keyname element... : 这个指令和lpush差不多,区别在于这个指令需要对应的keyname存在,才添加,不然不会添加。