NoSQL之Redis设置与优化

[复制链接]
发表于 2026-2-26 11:32:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
关系数据库与非关系型数据库
关系数据库
关系数据库是一种基于关系模子的数据库,它使用结构化查询语言(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安装摆设
安装
  1. [root@localhost ~]# systemctl stop firewalld
  2. [root@localhost ~]# setenforce 0
  3. [root@localhost ~]# yum -y install gcc* zlib-devel
  4. [root@localhost ~]# tar xvzf redis-4.0.9.tar.gz
  5. [root@localhost ~]# cd redis-4.0.9/
  6. [root@localhost redis-4.0.9]# make
  7. [root@localhost redis-4.0.9]# make PREFIX=/usr/local/redis install
  8. [root@localhost ~]# ln -s /usr/local/redis/bin/* /usr/local/bin/
  9. [root@localhost redis-4.0.9]# cd /root/redis-4.0.9/utils/
  10. [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    //客户端下令行工具

检察历程
  1. [root@localhost utils]# netstat -anpt | grep redis
复制代码
服务控制
  1. [root@localhost ~]#/etc/init.d/redis_6379 stop
  2. [root@localhost ~]#/etc/init.d/redis_6379 start
  3. [root@localhost ~]#/etc/init.d/redis_6379 restart
  4. [root@localhost ~]#/etc/init.d/redis_6379 status
复制代码
设置参数的修改
  1. [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
  2. [root@localhost utils]# netstat -anpt | grep redis
复制代码

Redis 下令工具

1:redis-cli 下令行工具

(1)毗连本机redis
  1. [root@localhost ~]# redis-cli
  2. 127.0.0.1:6379>
复制代码
(2)测试redis服务是否启动
  1. 127.0.0.1:6379> ping
  2. PONG
复制代码
(3)长途毗连
  1. [root@localhost ~]#redis-cli -h 192.168.10.101 -p 6379
复制代码
redis-benchmark 测试工具

(1)测试哀求性能
  1. [root@localhost ~]#redis-benchmark -h 192.168.10.101 -p 6379 -c 100 -n 100000
复制代码
(2)测试存取性能
  1. [root@localhost ~]#redis-benchmark -h 192.168.10.101 -p 6379 -q -d 100
复制代码

1.key 干系下令

使用 keys 下令可以取符合规则的键值列表,通常情况可以团结*、?等选项来使用。
  1. 127.0.0.1:6379>set k1 1
  2. OK
  3. 127.0.0.1:6379>set k2 2
  4. OK
  5. 127.0.0.1:6379>set k3 3
  6. OK
  7. 127.0.0.1:6379>set v1 4
  8. OK
  9. 127.0.0.1:6379>set v5 5
  10. OK
复制代码
(2)检察当前数据库中全部键
  1. 127.0.0.1:6379>KEYS  *  
  2. 1) "teacher"
  3. 2) "k1"
  4. 3) "k2"
  5. 4) "k3"
  6. 5) "v1"
  7. 6) "v5"
  8. 127.0.0.1:6379>set v22 5
  9. OK
复制代码

exists

exists 下令可以判断键值是否存在
  1. 127.0.0.1:6379>exists teacher
  2. (integer) 1      //结果为1,表示 teacher 键是存在 ,结果为0,表示 tea 键不存在
复制代码
del
del 下令可以删除当前数据库的指定 key
  1. del v5
  2. (integer) 1
复制代码
type

使用 type 下令可以获取 key 对应的 value 值范例
  1. 127.0.0.1:6379>type k1
  2. string
复制代码
rename

rename 下令是对已有 key 举行重定名

在现实使用过程中,发起先用 exists 下令检察目标 key 是否存在,然后再决定是否实行 rename 下令,以制止覆盖紧张数据

renamenx

renamenx 下令的作用是对已有 key 举行重定名,并检测新名是否存在。

使用renamenx 下令举行重定名时,假如目标 key 存在则不举行重定名。


dbsize

dbsize 下令的作用是检察当前数据库中 key 的数量。
  1. 127.0.0.1:6379> dbsize
  2. (integer) 5
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表