马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
关系数据库与非关系型数据库
关系数据库
关系数据库是一种基于关系模子的数据库,它使用结构化查询语言(SQL)举行数据使用和管理。其重要特点包罗:
1.数据结构化:数据按照严酷的模式举行构造,表之间存在明确的关系。
比方,在一个员工信息数据库中,大概有“员工表”、“部门表”,通过“部门编号”等字段创建关联。
2.数据同等性:通过束缚和规则包管数据的精确性和完备性。
好比设置主键包管每条纪录的唯一性,设置外键包管数据之间的关联同等性。
3.支持复杂查询:可以使用 SQL 举行复杂的毗连、聚合、排序等使用。
比方,要查询某个部门全部员工的匀称工资,通过符合的 SQL 语句可以轻松实现。
常见的关系数据库有 MySQL、Oracle、SQL Server 等。
非关系型数据库
非关系型数据库也称为 NoSQL 数据库,它不遵照传统的关系模子,具有更机动的数据模子和存储方式。其上风在于:
1.机动性:可以大概轻松应对数据模式的频仍厘革。
好比在处理处罚文档型数据时,无需事先界说严酷的模式。
2.高扩展性:易于程度扩展,通过增长节点来进步性能和存储本事。
像分布式的 MongoDB 集群,可以方便地添加新的服务器节点。
3.高性能:实用于处理处罚大规模的高并发读写使用。
比方在处理处罚海量的实时日记数据时,表现出色。
常见的非关系型数据库有 MongoDB、Redis、Cassandra 等。
总的来说,关系数据库实用于数据结构明确、对同等性和复杂查询有较高要求的场景;而非关系型数据库则更恰当数据结构机动多变、高并发、大数据量的应用场景。在现实应用中,通常会根据详细的需求和业务特点来选择符合的数据库范例。
Redis根本
Redis 是一个开源的(BSD 允许)、内存中的数据结构存储体系,可用作数据库、缓存和消息中央件。
一、数据结构
Redis 支持多种数据结构,包罗:
- 字符串(String):可以存储字符串、整数或浮点数。比方,存储用户的积分 INCR user_score 。
- 哈希(Hash):恰当存储对象。好比存储用户信息 HSET user:1 name "John" age 25 。
- 列表(List):按照插入次序存储元素。如实现消息队列 LPUSH queue message 。
- 聚集(Set):无序且不重复的元素聚集。比方找出共同关注的用户 SINTER set1 set2 。
- 有序聚集(Sorted Set):每个元素都关联一个分数,按分数排序。好比排行榜 ZADD rank 100 user1 。
二、长期化
Redis 提供了两种长期化方式:
- RDB(Redis Database):以快照的情势将数据生存到磁盘。
- AOF(Append Only File):将实行的写下令追加到文件中。
三、变乱
Redis 变乱可以一次实行多个下令,要么全部乐成,要么全部失败。使用 MULTI 开始变乱,EXEC 实行变乱。
四、发布/订阅
Redis 支持发布/订阅模式,发布者发送消息,订阅者汲取消息。
五、应用场景
- 缓存:加快数据读取,减轻数据库压力。
- 会话存储:存储用户会话信息。
- 排行榜:使用有序聚集实现。
Redis安装摆设
安装- [root@localhost ~]# systemctl stop firewalld
- [root@localhost ~]# setenforce 0
- [root@localhost ~]# yum -y install gcc* zlib-devel
- [root@localhost ~]# tar xvzf redis-4.0.9.tar.gz
- [root@localhost ~]# cd redis-4.0.9/
- [root@localhost redis-4.0.9]# make
- [root@localhost redis-4.0.9]# make PREFIX=/usr/local/redis install
- [root@localhost ~]# ln -s /usr/local/redis/bin/* /usr/local/bin/
- [root@localhost redis-4.0.9]# cd /root/redis-4.0.9/utils/
- [root@localhost utils]# ./install_server.sh
复制代码Config file : /etc/redis/6379.conf //设置文件路径
Log file : /var/log/redis_6379.log //日记文件路径
Data dir : /var/lib/redis/6379 //数据文件路径
Executable : /usr/local/redis/bin/redis-server //可实行文件路径
Cli Executable : /usr/local/redis/bin/redis-cli //客户端下令行工具
检察历程 - [root@localhost utils]# netstat -anpt | grep redis
复制代码服务控制 - [root@localhost ~]#/etc/init.d/redis_6379 stop
- [root@localhost ~]#/etc/init.d/redis_6379 start
- [root@localhost ~]#/etc/init.d/redis_6379 restart
- [root@localhost ~]#/etc/init.d/redis_6379 status
复制代码设置参数的修改 - [root@localhost ~]#vim /etc/redis/6379.conf bind 127.0.0.1 192.168.10.101 //监听的主机地点 port 6379 //端口 daemonize yes //启用守卫历程 pidfile /var/run/redis_6379.pid //指定 PID 文件 loglevel notice //日记级别 logfile /var/log/redis_6379.log //指定日记文件 [root@localhost~]#/etc/init.d/redis_6379 restart
- [root@localhost utils]# netstat -anpt | grep redis
复制代码
Redis 下令工具
1:redis-cli 下令行工具
(1)毗连本机redis- [root@localhost ~]# redis-cli
- 127.0.0.1:6379>
复制代码 (2)测试redis服务是否启动(3)长途毗连- [root@localhost ~]#redis-cli -h 192.168.10.101 -p 6379
复制代码redis-benchmark 测试工具
- [root@localhost ~]#redis-benchmark -h 192.168.10.101 -p 6379 -c 100 -n 100000
复制代码(2)测试存取性能 - [root@localhost ~]#redis-benchmark -h 192.168.10.101 -p 6379 -q -d 100
复制代码
1.key 干系下令
使用 keys 下令可以取符合规则的键值列表,通常情况可以团结*、?等选项来使用。 - 127.0.0.1:6379>set k1 1
- OK
- 127.0.0.1:6379>set k2 2
- OK
- 127.0.0.1:6379>set k3 3
- OK
- 127.0.0.1:6379>set v1 4
- OK
- 127.0.0.1:6379>set v5 5
- OK
复制代码(2)检察当前数据库中全部键 - 127.0.0.1:6379>KEYS *
- 1) "teacher"
- 2) "k1"
- 3) "k2"
- 4) "k3"
- 5) "v1"
- 6) "v5"
- 127.0.0.1:6379>set v22 5
- OK
复制代码
exists
exists 下令可以判断键值是否存在 - 127.0.0.1:6379>exists teacher
- (integer) 1 //结果为1,表示 teacher 键是存在 ,结果为0,表示 tea 键不存在
复制代码 del
del 下令可以删除当前数据库的指定 key type
使用 type 下令可以获取 key 对应的 value 值范例 - 127.0.0.1:6379>type k1
- string
复制代码rename
rename 下令是对已有 key 举行重定名
在现实使用过程中,发起先用 exists 下令检察目标 key 是否存在,然后再决定是否实行 rename 下令,以制止覆盖紧张数据
renamenx
renamenx 下令的作用是对已有 key 举行重定名,并检测新名是否存在。
使用renamenx 下令举行重定名时,假如目标 key 存在则不举行重定名。
dbsize
dbsize 下令的作用是检察当前数据库中 key 的数量。 - 127.0.0.1:6379> dbsize
- (integer) 5
复制代码 |