七 SpringBoot - Redis 缓存

1、五大基本数据类型和操作1.1 字符串-string命令说明set key value如果key还没有,那就可以添加,如果key已经存在了,那会覆盖原有key的值get key如果key还没有,获取为(nil),代表key没有被使用,如果key存在,可以获取对应key的值exists key判断某个key是否存在,返回Integer值1 代表存在,如果 exists car2 则返回0,不存在move key db将当前数据库存在的键值移动到其它数据库,其中db是数据库的序号expire key 秒钟为已经存在的key设置过期时间,注意过期之后,从内存中去掉了,是get不到的ttl key查看还有多少秒过期,-1表示永不过期,-2表示已过期type key命令用于返回 key 所储存的值的类型del key根据key值删除append key value根据key将其值进行字符串拼接strlen key根据key获取其值的字符串长度,字节数incr key对key对应数值进行加一操作,对应的字符串值必须是数值decr key对key对应数值进行减一操作incrby key 数值对key对应数值按照指定的值进行递增decrby key 数值对key对应数值按照指定的值进行递减getrange key 起始位置 结束位置获取指定区间内的值,类似between 。。。and的关系,起始位置为0,结束位置为-1 就是返回所有setrange key 起始位置 具体值设置指定区间内的值,具体值会从起始位置开始覆盖setex key 过期秒值 真实值设置带过期时间的key,动态设置 。setnx key value只有在 key 不存在时,才会设置 key 的值,如果已经存在了,不覆盖,设置不了;setnx key value如果返回0 代表没有设置成功,key对应值已经存在,如果返回1代表设置成功;这个就是redis的分布式锁命令,很重要;mset key1 val1 key2 val2 ....同时设置一个或多个 key-value 对mget key1 key2 key3 ....获取所有(一个或多个)给定 key 的值 。msetnx key1 val1 key2 val2 .....同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在1.2 列表-listlist操作起来类似于栈;
命令说明lpush key val1 val2 val3 ....从左侧开始存放元素,先进后出lrange key 起始位置 结束位置从左侧开始,指定范围获取元素,-1代表所有rpush key val1 val2 val3 ....从右侧开始存放元素,先进先出lpop key从左侧一次取出一个元素rpop key从右侧一次取出一个元素lindex key index按照索引下标获得元素(从左到右,左下标从0开始,如果是-1代表最后一个,-2代表倒数第二个)llen key获取集合元素个数lrem key 个数 具体的值从左往右删除指定个数等于具体值的元素,返回的值为实际删除的数量,个数0,表示删除全部给定的值ltrim key 开始index 结束index截取指定范围的值后再赋值给keyrpoplpush 源列表 目的列表移除列表的最后一个元素,并将该元素添加到另一个列表并返回lset key index value将key集合中的指定下标位置值改为valuelinsert  key  before/after 值1 值2在list某个已有 值1 的前后再添加具体 值2小结:

  1. 它是一个字符串链表,left、right都可以插入添加;
  2. 如果键不存在,创建新的链表;
  3. 如果键已存在,新增内容;
  4. 如果值全移除,对应的键也就消失了;
  5. 链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了;
1.3 集合-set命令说明sadd key val1 val2 ...集合set中添加元素,如果有重复元素会自动去除smembers  key查看集合中的元素sismember  key val判断val是否在set集合中,如果在返回1,不在返回0scard key获取集合里面的元素个数srem key value删除集合中元素srandmember key 某个整数随机出几个数,如果超过最大数量就全部取出srandmember key 某个整数如果写的值是负数,比如-3,表示需要取出3个,但是可能会有重复值 。spop key随机出栈smove key1 key2将key1里的某个值赋给key2sdiff key1 key2在第一个set里面而不在后面任何一个set里面的项sinter key1 key2在两个set中都有的值的交集返回sunion key1 key2在两个set中所有的值的集合返回,会自动排除重复1.4 键值对-hashK V模式不变,但V是一个键值对;

经验总结扩展阅读