一、Mysql的使用
1、mysql优化型问题
① explain的使用:
可以对索引进行查阅,查看给制定字段添加索引是否成功。若成功则显示1,不成功则会将整张表中的数据条数全部显示出来。
② 在设计表时候考虑主键选型,测试会发现int速度远远高于string类型
③ 在设计表字段时,尽量写见名知意的字母拼接,尽量不要将当前表中的每个字段名都写的很长,这会影响查询速度
④ 避免使用select *,需要查询什么字段用什么字段,不然会将整张表中的所有字段全部扫描,影响查询速度
⑤ 对查询量很高的字段建立索引(普通索引、全局索引、唯一索引),这个看表设计时候的需求
⑥ 使用limit
二、Redis的使用
1、Nosql数据库(非关系型数据库)
① redis,单线程,大数据量的情况下逊色于memcache
② memcache,多线程,性能强劲,数据量不大时,优势不明显
上面二者相比,虽然memcache性能好,但是存在一个致命性缺点,无法持久化到本地磁盘,存在内存中有一定的风险,万一服务器崩溃将导致数据全部丢失,推荐使用redis。
2、将redis配置到启动服务中,并修改其声明的内存(显示8G,但是仅仅是声明,并非真正占用系统内存)
① 打开redis.windows.conf,搜索maxmem,找到#maxmemory <bytes>,去掉#,maxmemory 200mb(根据需求,这里举例)
② 修改好后,安装到系统服务
打开cmd窗口后(当前redis安装目录下)
3、注册安装服务:
redis-server --service-install redis.windows.conf --loglevel verbose
4、启动服务:
redis-server --service-start
启动任务管理查看服务,显示已启动,如下图
5、关闭服务:
redis-server --service-stop
启动任务管理器查看服务,已启动已经消失
6、卸载服务:
redis-server --service-uninstall
启动任务管理器,此时已经发现redis服务消失了。那么如果需要重新将redis配到windows系统中需要重头再来,重新注册安装服务
7、管理员方式启动cmd命令:
sc create redis binPath= C:\Redis\redis-server.exe start= auto
8、redis常用的一下命令
String类型:
flushall:清除所有库中的数据(redis支持多数据库)
flushDB:清除当前库中的数据
设置值:set key value
获取值:get key
删除值:del key(删除成功返回1,key不存在返回0)
查询类型:type key
字符串拼接:append key
获取值长度:strlen key
设置多个值:mset key1 value1 key2 value2...
获取多个值:mget key1 key2 key3...
Hash的用法:(类似于map集合中的Map<String,Map<String,String>>,键+字段=唯一)
HSET key 字段 value
例:
① 设值:
hset user name zhangsan
hset user age 18
② 获取值
hget user name-->结果:zhangsan
hget user age-->结果:18
若出现(键+字段)重复,下一个则会将上一个键+字段后的value值覆盖。(可重复,但是会覆盖前一个)
hset user name lisi
hget user name-->结果:lisi
设置生存时间:
set abc 123
设置时间:expire abc 10
查看还有多久:TTL key
查看是否还在:keys *
解除生存时间:persist key
5、redis常用的中间件
客户端Jedis,在依赖库中添加jedis依赖
<groupId>redis.clients<groupId>
<artifactId>jedis<artifactId>
<version>2.X<version>,之后再applicationContext-redis.xml中配置即可