Redis是一款高性能的NoQSQL系列的非关系型数据库,那么关系型和非关系型数据库有什么区别呢?
区别 | 关系型数据库 | 非关系型数据库 |
---|---|---|
常见数据库 | MySQL、Oracle等 | Redis、hbase、MongDB等 |
形式 | 表的形式存储 | 存储key:value形式; |
特点 | 数据之间有关联关系; 数据存储在硬盘文件中; | 数据之间没有关联关系; 数据存储在内存中; |
以上仅是简单的对比,关系型数据库与NoSQL数据库是互补的关系,通常情况下使用关系型数据库,在适合使用NoSQL的时候使用NoSQL数据库,以弥补关系型数据库的不足。一般会将数据存储在关系型数据库中,在NoSQL数据库中备份存储关系型数据库的数据
操作关系型数据库是非常耗时的,若要经常查询一些不太经常变化的的数据,可以使用缓存的思路解决这个问题,提高整体的查询性能,提升用户体验。
那么缓存的选择有很多方式,比如可以在当前服务器开辟一块内存空间,利用Map集合当做缓存,但是Map集合只能是让当前项目有缓存,对于分布式的部署来说,会有多台电脑,Map集合就不合适了,所以此时就有了非关系型数据库的用武之地。因为该类数据库数据存储在内存中,且可以部署独立的机器,可以让一个机器的所有内存被数据库独占,这是Map做不到的,因为其运行在Java虚拟机中,虚拟机只能固定分配一定空间的内存,且内存较小。如今的互联网中用Redis做缓存是比较多的。
1)软件下载:直接从官网下载安装包,若不会FQ也可以从Redis中文网下载,不过后者的最新版本一般低于前者:
2)安装:直接解压即可,无需安装,需要了解几个文件:
先双击redis-server.exe启动redis服务器,再双击redis-cli.exe打开客户端,就可以在客户端操作了
操作Redis的方法有命令操作、Java代码方式,首先了解下Redis的数据结构,非常重要。
Redis存储的是键值对:key,value形式的数据,其中key都是字符串,value有5种不同的数据结构:
1)字符串类型 string:
2)哈希类型hash:map格式
3)列表类型 list
列表按照插入顺序排序,可以添加元素到列表的头部或尾部。
4)集合类型 set:不允许重复
5)有序集合类型 sortedset:自动排序,且不重复
6)通用命令
Redis是内存数据库,当Redis服务器重启或者电脑重启了,数据会丢失,可以将Redis内存中的数据持久化保存在内存的文件中,当重启后,Redis会恢复数据,保证不丢失。Redis持久化的机制:
1)RDB:默认方式,不用配置,在一定的间隔时间内,检测key的变化情况来持久化数据,这种方式对性能的影响比较低,推荐使用; --编辑redis.windows.conf文件: save 900 1 // after 900 sec (15 min) if at least 1 key changed save 300 10 // after 300 sec (5 min) if at least 10 keys changed save 60 10000 // after 60 sec if at least 10000 keys changed
修改完配置文件后需要使用命令行启动服务器:redis-server.exe redis.windows.conf,现修改为save 10 5,即10s后至少有5个key发生变化,则持久化数据,可以看到生成后缀为rdb的文件,测试效果如下:
2)AOF:日志记录方式,可以记录每一条命令操作,每一次命令操作后来持久化数据,这种方式对性能影响较大;
--编辑redis.windows.conf文件:
修改完配置文件后需要使用命令行启动服务器:redis-server.exe redis.windows.conf,现修改为appendonly yes,即每隔1s持久化一次,可以看到生成后缀为aof的文件,测试效果如下:
———————————————————————————————————
本文为博主原创文章,转载请注明出处!