最近工作中部分接口的数据是从Redis中查询的,有时需要使用命令来操作缓存,所以稍微总结一下常用的redis命令。
当然是为了快!快!快!
比较正式的说法:分布式缓存通常是为了缓解关系数据库的查询压力,在应用系统和关系数据库之间增加的一个独立分布式缓存系统,其中比较常用缓存系统有Redis、memcache等。memcache中仅支持字符串类型,不能满足公司系统的需求,所以选择了redis。
Redis中包含五种数据类型:string、list、set、hash、zset。对每种数据类型的设置、查询、删除等操作命令进行简单总结。
这应该是redis中最常用最基础的数据类型了,一般用于普通字符串的存储,也可用于自增id的生成。
值设置:set key value
值查询:get key
值自增:incr key
举例如下:
备注:字符串类型key对应的value,可以是普通字符串,也可以是整型。只有整型是才可以使用incr命令,否则redis会提示错误。
值设置:lpush key value(左边插入value),rpush key value(右边插入value)
值查询:lrange key start end(查询从start到end的元素值,start为0时,是从首个元素查询,end是-1时,代表查询到最后一个元素)
值查询:lindex key indexvalue(查询某index位置的元素值)
值移除:lpop key(移除最左边元素),lpush key(移除最右边元素)
列表与集合的区别:
列表是有序的,可以使用下标来访问元素值,列表中的元素是可以重复的。
集合是无序的,集合中元素不可重复添加。
值设置:sadd key value(因为是无序的,所以无所谓是左边插入还是右边插入)
值查询:smembers key(查询集合中所有的元素)
值查询:sismember key value(查询某值是否为集合中的元素)
值移除:srem key value(删除集合中某元素)
哈希变量中,可以包含很多值,每个值都是一个键值对。比如例子中的1001 annie,其中1001是field,annie是value,即代表stuid是1001的学生,对应的名字是annie。
值设置:hset key field value
值查询:hget key field(查询哈希中某一个field对应的value)
值查询:hgetall key(查询哈希中包含的所有变量值)
值移除:hdel key field(删除哈希中某一个field以及对应的value)
有序集合,首先是一个集合,但是集合中每一个成员(member)都带着自己的分值(score),集合中会按找score对其中的成员自动排序。
值设置:zadd key score member
值查询:zrange key start stop(查询出集合中start到stop的所有元素,元素是按score进行升序排序的)
值查询:zrange key start stop withscores(同上,但是同时会将member对应的score也查询出来)
值查询:zrangebyscore key start stop withscores(按score进行筛选,查询score在start和stop中的所有member即score)
还有一个比较常用的,是可以设置redis中变量的过期时间。
设置过期时间:expire key seconds(设置多少秒后该变量过期)
设置过期时间:expireat key timestamp(设置具体什么时间该变量过期)
查询过期时间:ttl key(查看多少秒后该变量过期)