七 SpringBoot - Redis 缓存( 二 )


命令说明hset 父key 子key 子value将父key,增加子键值对,类似属性hget 父key 子key获取父key,某个子key的值,获取属性值hmset 父key 子key1 子val1 子key2 子val2 ....批量添加属性hmget 父key 子key1 子key...批量获取属性hgetall 父key批量获取属性及值hdel 父key 子key删除子key属性及值hlen 父key返回父key中的子key个数,相当于java实体的属性个数hexists 父key 子key判断父key中是否包含某个子key,结果为1,代表存在hkeys 父key获取父key中所有的子keyhvals 父key获取父key中的所有的子valhincrby 父key 子key 值给指定的子key值增加固定的值hincrbyfloat 父key 子key 值给有指定key的值增加小数hsetnx 父key 子key 子val如果子key存在则失败,如果不存在则赋值1.5 有序集合-zset在set基础上,加一个score值 。之前set是k1 v1 v2 v3,现在zset是k1 score1 v1 score2 v2;
命令说明zadd key score1 val1 score2 val2 score3 val3 ...有序集合添加带score值的元素zscore key val获取集合中某个值对应score值zrange key 0 -1 [withscores]zrange zset1 0 -1,结果为所有的值,不带分数;如:zrange zset1 0 -1,结果为所有的值,不带分数zrange zset1 0 -1 withscores结果为所有的值和分数zrangebyscore key 开始score 结束score获取score值在开始score-结束score之间的元素zrangebyscore zset1 10 40获取score值在10-40之间的元素,包含10和40zrangebyscore zset1 10 (40不包含40值;(   的含义是不包含zrangebyscore zset1 (10 (40不包含10,40值zrangebyscore zset1 10 50 limit 2 2limit 结果的起始下标,获取的个数;limit 含义是限制获取的条数,相当于mysql的分页;zrem key 某score下对应的value值删除元素zcard key获取key对应的值的个数;注意score 和 value是一个整体zcount key score区间获取分值区间内元素个数zrank key values值获得下标值zscore key 对应value值获得value对应分数zrevrank key value值逆序获得对应逆序的下标值zrevrange key 起始下标,结束下标将之前顺序进行倒序zrevrangebyscore  key 结束score 开始score根据score值输出元素zincrby key 增加分值 value值给对应的值增加score值2、Redis整合2.1 spring-boot-starter-data-redis 依赖<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-data-redis</artifactId></dependency>2.2 redis配置#端口号server:  port: 8096# redis配置spring:  redis:    host: 127.0.0.1 #如果是redis远程服务器,此处redis服务器ip地址    port: 6379 #默认端口#    database: 0 #指定redis数据库,默认是0#    password:   # 密码有就写,没有就省略2.3 SpringBoot框架自动配置的redisTemplate2.3.1 清空数据库//自动装配  SpringBoot框架自动配置的redisTemplate@Autowiredprivate RedisTemplate<Object,Object> redisTemplate;//基于SpringBoot框架自动配置的redisTemplate,操作redis缓存//获取连接RedisConnection connection = redisTemplate.getConnectionFactory().getConnection();//清空数据库中的所有数据log.info("清空数据库中的所有数据");connection.flushDb();2.3.2 添加数据//程序中,添加数据据到redislog.info("------ 基于SpringBoot框架自动配置的redisTemplate 添加数据 ------");redisTemplate.opsForValue().set("kh96_class_name","KGC_KH96");redisTemplate.opsForValue().set("student_num",19);2.3.3 获取数据//程序中,从redis获取数据log.info("------ 基于SpringBoot框架自动配置的redisTemplate 获取数据 ------");log.info("****** 根据 班级的key:{},获取班级名称:{} ******","kh96_class_name",redisTemplate.opsForValue().get("kh96_class_name"));log.info("****** 根据 班级的key:{},获取班级人数:{} ******","student_num",redisTemplate.opsForValue().get("student_num"));

经验总结扩展阅读