Nosql数据库服务之redis
Nosql数据库服务之redis
一图详解DB的分支产品
Nosql数据库介绍
是一种非关系型数据库服务,它能解决常规数据库的并发能力,比如传统的数据库的IO与性能的瓶颈,同样它是关系型数据库的一个补充,有着比较好的高效率与高性能。
专注于key-value查询的redis、memcached、ttserver
解决以下问题
1)对数据库的高并发读写需求
2)大数据的高效存储和访问需求
3)高可扩展性和高可用性的需求
Nosql数据库的应用环境
1)数据模型比较简单
2)需要灵活性更强的IT系统
3)对数据库的性能要求较高
4)不需要高度数据一致性
5)对于给定KEY,比较容易映射复杂值的环境
Nosql软件的分类与特点
1)key-value键值存储数据库(redis、memcached)
-
用于内容缓存,适合负载并扩展大的数据集
-
数据类型是一系列的键值对
-
有快速查询功能,但存储数据少结构化
-
对事务的支持不好,数据库故障产生时不可进行回滚
2)列存储数据库(HBase)
-
用于分布式的文件系统
-
以列簇式存储,将同一列数据存在一起
-
查找速度快,可扩展强,更容易进行分布式扩展
-
功能相对局限
3)面向文件的数据库(mongoDB)
-
用于WEB应用较多
-
数据类型是一系列键值对
-
查询性能不高,没有统一的查询语法
4)图形数据库(Graph)
-
社交网络应用较多
-
不容易做分布式的集群方案
常用的Nosql数据库介绍
1)memcached
是一个开源高性能的,具有分布式内存对象的缓存系统
特点
1、安装布署简单
2、支持高并发、高性能
3、通过程序或负载均衡可以实现分布式
4、仅为内存缓存,重启服务数据丢失
官方网站:http://memcached.org
2)memcacheDB
是新浪基于memcached开发的一个开源项目,具备了事务恢复功能
特点
1、高并发读写
2、高效存储
3、高可用数据存储
官方网站:http://memcachedb.org/benchmark.html
生产环境如何选择Nosql数据库
1、最常规的缓存应用,memcached最合适
2、持久化存储方案memcacheDB
3、2000万以内数据量的小数据用memcached
4、大数据量可以用redis
redis持久化数据服务
REmote DIctionary server(redis)是一个基于key-value键值对的持久化数据库存储系统,对支持数据存储类型更多,包括字符串、列表、集合等
是一种持久化缓存服务,会周期的把更新的数据写入磁盘以及把修改操作记录追加到文件里记录下来,还支持主从同步模式,是一个开源的基于C语言编写的,支持网络、内存可持久化的日志型、key-value数据库
redis持久服务的特点
-
key-value键值类型存储系统
-
支持数据可靠存储
-
单进程单线程高性能服务器
-
恢复比较慢
-
单机qps(秒并发)可以达到10W
-
适合小数据高速读写访问
redis存储系统优、缺点
-
可以持久化存储数据
-
支持每秒10W的读写频率
-
支持丰富的数据类型
-
所有操作都是原子性的
-
支持异机主从复制
-
内存管理开销大(低于物理内存的3/5)
-
不同命令延迟差别大
官方网站:http://www.redis.io
redis持久化介绍
redis将数据存储于内存中,通过快照、日志两种方式实现持久化存储,前者性能高,会有数据丢失的情况,后者相反。
redis应用场景
MYSQL+memcached网站架构的问题:数据量大就需要拆表,需要扩容,数据一致性是个问题
1)最佳应用场景就是内存服务
2)作为memcached替代方案
3)对数据一致性有一定要求但不高的业务
4)需要更多数据类型支持的业务
5)需要主从同步及负载均衡的业务
redis的安装
要进行主从同步配置,可以实现故障切换,主上禁用数据持久化,从上配置,内存要够大
[root@redis-m tools]# wget http://download.redis.io/releases/redis-2.8.24.tar.gz[root@redis-m tools]#tar zxf redis-2.8.24.tar.gz[root@redis-m tools]#cd redis-2.8.24[root@redis-m redis-2.8.24]#make[root@redis-m redis-2.8.24]#make PREFIX=/application/redis-2.8.24 install[root@redis-m redis-2.8.24]#ln -s /application/redis-2.8.24 /application/redis[root@redis-m tools]# tree /application/redis/application/redis`-- bin|-- redis-benchmark #性能测试工具|-- redis-check-aof #检测更新日志|-- redis-check-dump #检查本地数据库rdb文件|-- redis-cli #命令行客户端操作工具|-- redis-sentinel -> redis-server`-- redis-server #服务的启动程序### 配置环境变量[root@redis-m tools]# echo "PATH=/application/redis/bin:$PATH">>/etc/profile[root@redis-m tools]# source /etc/profile[root@redis-m tools]# which redis-server/application/redis/bin/redis-server
查看帮助文档
[root@redis-m tools]# redis-server --helpUsage: ./redis-server [/path/to/redis.conf] [options]./redis-server - (read config from stdin)./redis-server -v or --version./redis-server -h or --help./redis-server --test-memory <megabytes>Examples:./redis-server (run the server with default conf)./redis-server /etc/redis/6379.conf./redis-server --port 7777./redis-server --port 7777 --slaveof 127.0.0.1 8888./redis-server /etc/myredis.conf --loglevel verbose
启动服务
[root@redis-m ~]# cd /application/redis/ [root@redis-m redis]# lltotal 4drwxr-xr-x 2 root root 4096 Mar 22 04:50 bin[root@redis-m redis]# mkdir conf[root@redis-m redis]# cp /download/tools/redis-2.8.24/redis.conf ./conf/[root@redis-m redis]# redis-server /application/redis/conf/redis.conf &[6072] 22 Mar 05:00:51.373 # Server started, Redis version 2.8.24[6072] 22 Mar 05:00:51.374 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. #内存不足的时候,数据加载到磁盘可能失效,可以使用命令解决或修改配置文件[6072] 22 Mar 05:00:51.375 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.[6072] 22 Mar 05:00:51.375 * The server is now ready to accept connections on port 6379[root@redis-m redis]# lsof -i :6379COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEredis-ser 6072 root 4u IPv6 24271 0t0 TCP *:6379 (LISTEN)redis-ser 6072 root 5u IPv4 24273 0t0 TCP *:6379 (LISTEN)vm.overcommit_memory0表示用户空间请求更多内存时,内核尝试估算出余下可用内存1表示内核允许最大限度的的使用内存
关闭服务命令
[root@redis-m redis]# redis-cli shutdown[6072] 22 Mar 05:09:32.699 # User requested shutdown...[6072] 22 Mar 05:09:32.699 * Saving the final RDB snapshot before exiting.[6072] 22 Mar 05:09:32.710 * DB saved on disk[6072] 22 Mar 05:09:32.711 # Redis is now ready to exit, bye bye...[1]+ Done redis-server /application/redis/conf/redis.conf
相关文章:

Nosql数据库服务之redis
Nosql数据库服务之redis 一图详解DB的分支产品 Nosql数据库介绍 是一种非关系型数据库服务,它能解决常规数据库的并发能力,比如传统的数据库的IO与性能的瓶颈,同样它是关系型数据库的一个补充,有着比较好的高效率与高性能。 专…...

当AI遇到IoT:开启智能生活的无限可能
文章目录 1. AI和IoT的融合1.1 什么是人工智能(AI)?1.2 什么是物联网(IoT)?1.3 AI和IoT的融合 2. 智能家居2.1 智能家居安全2.2 智能家居自动化 3. 医疗保健3.1 远程监护3.2 个性化医疗 4. 智能交通4.1 交通…...

Qt5界面Qt Designer上添加资源图片后,ModuleNotFoundError: No module named ‘rcc_rc‘ 的终极解决方案
在网上找了很久都没弄明白,最后还是自己思考解决了。 起因: 用 Qt Designer 添加资源文件作为背景图,编译 \resource\static\qrc> pyuic5 -o .\xx.py .\xx.ui发现在 xx.py 文件末尾中多了一个语句: import rcc_rc然后运行就…...
社群运营怎么做?
社区运营虽然说起来简单,可是实际执行起来却常常发现无从下手。刑天营销曾经做过社区运营的案子,我们也总结一套自己的方法,要做好社群运营,以下的这些问题就不能忽视: 一、做好社区定位 做社区运营,首先…...

Vite,Vue3项目引入dataV报错的解决方法
背景:开发一个大屏项目中,需要是要DataV的那边边框,装饰等,只是DataV是基于vue2的,vue3版的作者还在开发中,于是翻了DataV的源码,发现使用esm方式时是直接引入源码而不经过打包,其源码中使用的vue语法vue3也支持,所以可以直接在vue3中引入使用. vite,vue3项目直接引入DataV 安…...

QT(8.30)常用类与组件,实现登录界面
1.作业: 完成一个登录界面(图片未附带): 头文件: #ifndef WIDGET_H #define WIDGET_H#include <QWidget>#include <QLineEdit>//行编辑器#include<QIcon>//图标#include<QLabel>//标签#include<QPushButton>//按钮#include<QIc…...

【Two Stream network (Tsn)】(二) 阅读笔记
贡献 将深度神经网络应用于视频动作识别的难点,是如何同时利用好静止图像上的 appearance information以及物体之间的运动信息motion information。本文主要有三点贡献: 1.提出了一种融合时间流和空间流的双流网络; 2.证明了直接在光流上训…...
记一次语音播报功能
浏览器本身就可以读文字 写功能前一直以为该功能得调用第三方平台的API才可以文字合成语音后用音频播放,原来HTML5已经支持了该功能(TTS)了 SpeechSynthesis 和 SpeechSynthesisUtterance SpeechSynthesis SpeechSynthesisUtterance let …...

Unity设置TextMeshPro文本超出范围显示...
TextMtshPro文本超出范围,展示省略。选择Overflow为Ellipsis。...

Java中级面试题记录(三)
1.职业规划? 2.每家公司离职原因? 3.SpringCloud用到了哪些组件? GateWayNacosOpenFeignSeataHystrix 4.PG和Mysql的区别? 5.两种数据库的存储区别? 6.MySQL索引了解的内容? 一口气搞定索引的所有知识…...
spring高级源码50讲-1-8(spring容器与bean)
文章目录 容器与 bean1) 容器接口演示1 - BeanFactory 与 ApplicationContext 的区别关键代码参考 收获💡演示2 - 国际化 2) 容器实现演示1 - DefaultListableBeanFactory代码参考 收获💡演示2 - 常见 ApplicationContext 实现代码参考 收获💡…...

微服务06-Dockerfile自定义镜像+DockerCompose部署多个镜像
常见的镜像在DockerHub能找到,但是我们自己写项目得自己构造镜像 1 镜像结构 作用:提高复用性,当应用需要更新时,不再是整个系统重装进行更新 ,而是对需要更新的部分进行更新,其他地方不动——>这就是分…...

2023高教社杯 国赛数学建模A题思路 - 定日镜场的优化设计
1 赛题 A 题 定日镜场的优化设计 构建以新能源为主体的新型电力系统, 是我国实现“碳达峰”“碳中和”目标的一项重要 措施。塔式太阳能光热发电是一种低碳环保的新型清洁能源技术[1]。 定日镜是塔式太阳能光热发电站(以下简称塔式电站)收集太阳能的基本组件&…...

Qt +VTK+Cmake 编译和环境配置(第二篇,中级篇, 重新编译)
1.下载VTK和Cmake 这里不介绍了。我的VTK 8.2.0 cmake 3.27.4 就是不服这编译器了。重新来一次 打开Cmake,把VTK源文件路径和目标路径设置一下(目标路径自己设置,随意) 点击Configure:。 点击下一步 选择好 Qt的gcc…...

图的学习,深度和广度遍历
一、什么是图 表示“多对多”的关系 包括: 一组顶点:通常用V(Vertex)表示顶点集合一组边:通常用E(Edge)表示边的集合 边是顶点对:(v, w)∈E,其中v,w∈V有向边<v, w&…...
ChatGPT驱动下,网站AI客服该如何进步和创新
在ChatGPT这个AI智能的驱动下,网站AI客服在进步和创新方面有很多潜力。由于GPT模型的强大语言处理能力和智能对话技巧,使得网站AI客服能够更准确和流畅地与用户交互。looklook今天总结了一些网站AI客服智能的进步和创新方向,以供大家参考。 网…...

Linux系统中实现便捷运维管理和远程访问的1Panel部署方法解析
文章目录 前言 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器,包括主机监控、文件管理、数据库管理、容器管理等下面我们介绍在Linux 本地安装1Panel 并结合cpolar 内网穿透工具实现远程访问1Panel 管理…...
数学建模黄河水沙监测数据分析
数学建模黄河水沙监测数据分析 问题: 黄河是中华民族的母亲河。研究黄河水沙通量的变化规律对沿黄流域的环境治理、气候变化和人民生活的影响,以及对优化黄河流域水资源分配、协调人地关系、调水调沙、防洪减灾等方面都具有重要的理论指导意义。 解题思…...

Unity ProBuilder(自己创建斜面、拐角)
目录 基础操作 下载 打开面板 新增对象 材质保存 1.斜面实例 2.拐角实例 3.切割实例 4.单独面赋值 基础操作 下载 打开面板 新增对象 选中想创建的块体后,在编辑器见面拉出块体 材质保存 打开材质编辑器后,将材质赋值,之后&am…...

以气象行业为例,浅谈在ToB/ToG行业中如何做好UI设计
商业气象公司是典型的TOB/TOG性质的公司,客户包括农业、能源、航空航天、交通运输、建筑工程等行业,它们需要准确的气象数据、预报和分析来支持业务决策和运营管理。商业气象公司通常会提供各种气象服务,如气象数据采集与分析、预报产品、风险…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...