凡科建设的网站如何,个人备案网站可以做论坛吗,龙岗注册公司,网站推广文章怎么写关系型数据库和非关系型数据库的区别
关系型数据库
是一个结构化的数据库#xff0c;记录方式是行#xff08;记录对象属性#xff09;和列#xff08;声明对象#xff09;
表与表之间是有关联的#xff0c;使用sql语句来对指定的表、库进行增删改查
在创建表的时候记录方式是行记录对象属性和列声明对象
表与表之间是有关联的使用sql语句来对指定的表、库进行增删改查
在创建表的时候我们是设计好了表的结构。按照表结构来存储数据数据与表结构不匹配存储数据会失败
非关系型数据库nosql not only sql
不需要定义库也不需要定义表结构直接记录即可而且每条记录都可以有不同的数据类型、字段字段个数
redis keyvalue 键值对形式存储。每个键之间没有直接关联库与库之间互相独立
区别
1、数据存储方式不同
2、扩展方式不同。性能上的提升
关系型数据库靠的是提升本机性能
非关系型数据库可以横向扩展加入节点服务器的方式提高性能
3、对事物支持性不同
MySQL原子性、隔离性、一致性、持久性
非关系型数据库redis也支持事物但是稳定性和处理能力都不如关系型数据库 非关系型数据库的主要场景
1、操作的扩展
2、海量数据处理 web2.0核心特点交互
纯动态网站的三高问题
1、对数据库高并发读写的需求
2、对海量数据高效存储与访问的需求
3、对数据库的高可扩展性与高可用性的需求 常见的需求场景
1、数据库缓存
2、web页面缓存
3、CPU和硬盘之间缓存 关系型数据库
库 ---- 表 ---- 行、列 ---- 存储数据 非关系型数据库
库 ---- 集合 ---- 键值对
不需要手动的创建库和集合 redis 开源的、使用C语言编写的nosql数据库
redis 基于内存运行支持持久化数据恢复。采用的就是key-value键值对的存储形式。目前在分布式架构中非常重要的一环 redis服务器是单进程模式即只有一个主进程工作。也就是说在一台服务器上可以启动多个redis端口号不能冲突
redis的实际处理速度是完全依靠主进程的执行效率
服务器只部署了一个redis多个客户端访问可能会导致redis处理能力下降
服务器部署多个redis进程虽然能提高redis并发处理能力但是会给服务器的CPU带来很大的压力
一般来说一台服务器部署三个redis进程根据情况来看。高并发要部署多个。一般情况单进程足矣 redis特点
1、具有极高的读写速度数据读取每秒110000次写入数据每秒可以执行81000次
2、支持丰富的数据类型
3、支持持久化。平常的数据都是保存在内存中持久化可以写入到磁盘中既可以保存到本地也可以实现备份。
4、原子性所有的操作都是原子性
5、支持主从模式 master-slave模式 面试redis为什么这么快
答①redis是纯内存结构避免了磁盘I/O的耗时; ②核心模块是一个单进程减少了线程切换和收回线程的时间; ③I/O的多路复用机制每个执行线路都可以同时执行读和写大大提高并发的效率;
*特殊说明redis的读写仍然是单进程处理 redis服务控制命令
/etc/init.d/redis_6379 stop start restart status redis的命令工具
redis-server 直接启动redis只能启动
redis-benchmark 检测redis再本机运行的效果
redis-cli 命令行工具
redis-check-aof 检测aof持久性是否正常
redis-check-rdb 检测rdb持久性是否正常 redis-benchmark -h 指定服务器的主机名、IP地址
redis-benchmark -p 指定服务器的端口号
redis-benchmark -c 指定并发连接数
redis-benchmark -n 指定请求数 如何进入redis
redis-cli -h 192.168.233.10 -p 6379 远程登录还是需要指定目标服务器的IP地址
redis-cli 仅限于本地 redis cli -h 192.168.233.10 -p 6379
-h 指定IP地址
-p 指定端口号
a 指定登录密码 redis的五大数据类型
1、string 字符串 也是redis最基本类型最大能存储512MB的数据可以存储任何数据包括但不限于数字、文字、图片等 2、list数据类型
列表当中的元素还是string类型 3、hash类型
hash类型用于存储对象采用hash格式进行操作。hash占用的磁盘空间少而且一个hash存储4294967295个键值对 4、set数据类型无序集合
元素类型也是string。列表里的元素是唯一的不可以重复。多个集合之间可以进行并集、交集、差集的运算
set当中的元系类型是唯一的可以跟踪一些唯一性的数据。访问微博的用户名。只要把对应的名称写入redisset集合可以自动保存唯一性方便下次访问 5、有序集合
有序集合元素类型也是string元素也不能重复唯一。每个元素都会关联一个double小数点的分数score表示权重可以通过权重的大小进行排序。元素的权重可以相同
zset
在线积分的排行榜可以实时更新用户的分数。zrange命令获取积分top10的用户。zrank命令通过username获取玩家的排行信息 redis其他数据类型
位图BitMap
存储位数据可以进行位级别的操作。
常用命令SETBIT、GETBIT、BITCOUNT。 HyperLogLog
用于基数估算的数据结构。
常用命令PFADD、PFCOUNT。 地理位置GeoSpatial
存储地理位置信息。
常用命令GEOADD、GEODIST、GEORADIUS ZCOUNT myzset 1 3 表示权重1 scroe 3 set和hset 创建普通类型和hash类型一般情况下如无特殊需求普通的创建方式即可对一个键进行多字段存储节省内存使用hash方式 DBSIZE 查看当前库键的数量 redis的库库都是创建好的16个库
按照数字排名0-15 互相独立 redis特点
1、读写速度快
2、数据类型①string②list③hash对一个键进行多字段操作要用hash节省内存空间④无序集合set元素不能重复可以用来定义唯一值⑤有序集合zset元素不能重复但是权重可以相同用来排名