复述,缓存
(toc)@
简介
复述是一个高性能的键值数据库
<编辑>优势编辑>-
<李>
性能强,适合高度的读写操作(读的速度是110000次/s,写的速度是81000次/秒)。
李> <李>支持较为丰富的数据类型(如二进制的字符串、列表、哈希表、集、命令集)
李> <李>一定的事物能力(要么执行成功要么完全不执行)。李>-
<李>内存数据库访问快,但也消耗硬件内存资源李>
注:复述的单线程仅仅是说在网络请求这一模块上用一个请求处理客户端的请求,但比如说持久化它就会重开一个线程/进程去进行处理。
引入复述,缓存
点击链接下载复述的窗口版,下载好后,放入你平时放软件的位置,解压出来即安装完成。(需要注意的是放入的文件目录,当前用户要是可读可写的权限,比如窗口下的C: \程序文件(x86),这个目录默认只有管理员权限才能读写,复述,运行时要在该目录下实时写入日志文件的,若无权限读写,则会操作不成功)
解压出来的目录如下所示,因为是Windows端的,可双击exe文件开启客户端,服务端。
因为这是springboot整合复述,系列,所以双击打开服务端即可,别关闭打开的cmd窗口。
在pom.xml中加入
<代码类="语言xml "> & lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-data-redis & lt;/dependency> 代码>
在application.properties中添加
<代码类=" language-properties "> #复述 #复述,服务器地址 spring.redis.host=127.0.0.1 #复述,服务器连接端口 spring.redis.port=6379 #复述,服务器连接密码(默认为空) spring.redis.password=#复述,数据库索引(默认为0) spring.redis.database=0 #连接池最大连接数(使用负值表示没有限制) spring.redis.jedis.pool.max-active=50 #连接池最大阻塞等待时间(使用负值表示没有限制) spring.redis.jedis.pool.max-wait=3000 #连接池中的最大空闲连接 spring.redis.jedis.pool.max-idle=20 #连接池中的最小空闲连接 spring.redis.jedis.pool.min-idle=5 #连接超时时间(毫秒) spring.redis.timeout=4000 代码>
代码实战
新增代码后的目录如下所示
这里先说明一下主要类的作用,Springboot提供了RedisTemplate类来操作复述,但是该类既无注释解释,命名规律也不够“望文生义”。所以写了个RedisUtil来封装一些常用的方法,RedisConfig主要是将默认的自动注入改为手动注入并加入序列化,避免一些中文乱码问题。
这里特别说一说RedisUtil类,搜索springboot和复述的文章,这个需要自己封装的类网上大多写的非常混乱,而且前后的封装逻辑不一致,我估计是某位博主从至少三个人那里复制粘贴糅合起来的,然后大家都跟着这位博主复制粘贴,反而成了热门文章。我猜测大家看它是个工具类,而且六百行左右,大多没有仔细琢磨,能简单测试通过即可,但是稍加思考,发现问题真的不少,很容易误导那些喜欢”拿来主义”的“萌”新。
虽然我这个系列也是快速上手系列,但我理解的快速上手,就是把让人云里雾里的概念讲直白,然后先暂时跳过那些需要深入的,避免刚入手的畏难情绪,把整个操作流程写的清楚明白,给别人讲一千遍道一万句,不如让他对着现成的程序跑一遍,我一直认为:对着一片空白的屏幕学习程序,只会让人愈加焦虑,最好的办法是一边运行,一边深入。
所以我选取了复述,五大类型中的字符串,散列,集列表,几乎覆盖每个类型,而SortedSet没有选取是因为这是有序的集合,可以自己类比。工具类我统一提供的是取值,添加值,删除值,命名规律绝对可以让你“望文生义”,其实还有很多方法,这里我不全写出来,是因为五大数据类型都有一堆方法,你不一定用得上,而且很占篇幅,在这里,授人以鱼不如授人以渔,你仔细看看RedisUtil的工具类,就会发现规律,比如操作弦,大多是先调用opsForValue()方法,操作散列,大多先调用opsForHash()方法,把项目代码下载到本地,思想里面点进的去,就能看到相关的一堆方法。工具类只是重新调用了,换了个名字,加了些逻辑处理。