目录
1.数据库类型
(1)关系数据库(SQL)
特点:
- 使用SQL语句进行操作
- 数据存在磁盘上
典型:
- mysql
- oracle
- sqlsever(微软的)
- sqlite (文件数据库,做嵌入式的时候经常使用,轻巧比较小)
(2)非关系数据库(NoSQL)
特点:
- 不依赖于SQL语句
- 数据存储在内存中
- 数据也可以进行持久化,将数据保存到磁盘
- 数据都是以键值对的方式进行存储的
- Key值是字符串(是数字也会被转换为字符串)
典型:
- Redis
- Memcathed
- MongoDB
2.缓存数据库与持久数据库的搭配使用
用户第一次连应用服务器请求数据:在应用服务器的缓存中没有相应数据——>读数据库(数据库中存放了全部的数据)——>应用服务器把数据给到用户,同时判断数据是否为用户经常访问的数据,是的话就存到Redis中
用户第二次请求就不用再去读数据库,而是从Redis中读取,因为Redis的数据存储在内存中,大大提高了访问的效率
Redis存放用户经常访问的数据
Redis是单线程工作的,但它为什么能实现高并发?
因为它存储在内存中,操作速度非常快,内部维护了一个队列,一个操作一个操作处理很快
3.Redis下载、安装和测试
(1)下载地址
(2)安装
(3)测试
默认阻塞,再开一个终端
(4)关闭服务器
在客户端敲shutdown(有条件限制,必须通过客户端连接到了服务器上面)
4.Redis的Value的数据类型
(1)字符串类型
(2)List类型
既可以按照队列进行操作,也可以按照栈来操作
队列:
- rpush
- lpop
栈:
- lpush
- lpop
- 或
- rpush
- rpop
(3)Set类型
集合没有顺序,但元素唯一
(4)SortedSet类型
集合的每一个元素的前面都有一个分数,SortedSet会根据分数进行排序
(5)Hash类型
5.key的常用命令
6.redis的配置文件
配置文件在安装包中
绑定的话只接收绑定IP客户端的数据
远程客户端可以访问
端口
是否为守护进程
log日志是否需要写到文件中,这里写为空是重定向到/dev/null扔掉
redis内部帮我们维护了16个数据库
redis以守护进程运行时,会将pid存放在/var/run/redis_6379.pid中
客户端连接超时时间
7.redis的内存的持久化
(1)rdb形式
特点:
- 以快照的方式对数据做一个拷贝
- 存储的是内存中的数据,以键值对的形式存储
- 按照某种频率做数据存储
- 这个频率在配置文件中
优点:
- 数据恢复要快一些
缺点:
- 存储的频率特别高的话,效率低;
- 存储的频率低的话,同步不及时;
配置:
(2)Aof形式
特点:
- 存储的都是命令
优点:
- 数据存放到磁盘的效率比较高
- 占用磁盘空间小
缺点:
- 数据恢复用的时间比较长,因为命令比较多的话,用命令生成数据比直接读取数据快
配置: