Redis快速上手篇(一)(安装与配置)

news2024/11/14 2:54:10

NoSQL

  NoSQL 是 Not Only SQL 的缩写,意即"不仅仅是 SQL"的意思,泛指非关系型的数据库。强调 Key-Value Stores 和文档数据库的优点。

NoSQL 产品是传统关系型数据库的功能阉割版本,通过减少用不到或很少用的功能,来大幅度提高产品性能

  • 不遵循 SQL 标准。 (添加 insert 修改 update )
  • 不支持 ACID(ACID,是指在可靠数据库管理系统(DBMS)中,事务(transaction)所应该具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)这是可靠数据库所应具备的几个特性)。
  • 远超于 SQL 的性能。

关系型数据库是结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。

过去,关系型数据库(SQL Server、Oracle、MySQL)是数据持久化的唯一选择,但随着发展,关系型数据库存在以下问题。

1.不能满足高性能查询需求

我们使用:Java、.Net 等语言编写程序,是面向对象的。但用数据库都是关系型数据库。存储结构是面向对象的,但是数据库却是关系的,所以在每次存储或者查询数据时,我们都需要做转换。类似 Hibernate、Mybatis 这样的 ORM 框架确实可以简化这个过程,但是在对高性能查询需求时,这些 ORM 框架就捉襟见肘了。

ORM是通过使用描述对象和数据库之间映射的元数据,

只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中。

2.应用程序规模的变大

网络应用程序的规模变大,需要储存更多的数据、服务更多的用户以及需求更多的计算能力。为了应对这种情形,我们需要不停的扩展。

扩展分为两类:一种是纵向扩展,即购买更好的机器,更多的磁盘、更多的内存等等。另一种是横向扩展,即购买更多的机器组成集群。在巨大的规模下,纵向扩展发挥的作用并不是很大。首先单机器性能提升需要巨额的开销并且有着性能的上限,在 Google 和 Facebook 这种规模下,永远不可能使用一台机器支撑所有的负载。鉴于这种情况,我们需要新的数据库,因为关系数据库并不能很好的运行在集群上。

NoSQL 的适用场景

  • 对数据高并发的读写
  • 海量数据的读写
  • 对数据高可扩展性的

NoSQL 不适用场景

  • 需要事务支持
  • 基于 sql 的结构化查询存储,处理复杂的关系,需要关系查询。

用不着 sql 的和用了 sql 也不行的情况,考虑用 NoSql

常见的 NoSQL 及区别

1,常见的 NoSQL 数据库

区别

1.Memcached

  • 很早出现的 NoSql 数据库
  • 数据都在内存中,一般不持久化
  • 支持简单的 key-value 模式,支持类型单一
  • 一般是作为缓存数据库辅助持久化的数据库(MySQL)

2.Redis

  • 几乎覆盖了 Memcached 的绝大部分功能
  • 数据都在内存中,支持持久化,主要用作备份恢复
  • 除了支持简单的 key-value 模式,还支持多种数据结构的存储,包括 string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和 hash(哈希类型)。
  • 一般是作为缓存数据库辅助持久化的数据库

3.MongoDB

  • 高性能、开源、模式自由(schema free)的文档型数据库
  • 数据都在内存中, 如果内存不足,把不常用的数据保存到硬盘
  • 虽然是 key-value 模式,但是对 value(尤其是 json)提供了丰富的查询功能
  • 支持二进制数据及大型对象
  • 可以根据数据的特点替代 RDBMS,成为独立的数据库。或者配合 RDBMS,存储特定的数

Redis

开源的 key-value 存储系统 端口 6379

Redis 的应用场景

1.数据缓存(提高访问性能)

查询概率 >> 增删改的概率

将一些数据在短时间之内不会发生变化,而且它们还要被频繁访问,为了提高用户的请求速度和降低网站的负载,降低数据库的读写次数,就把这些数据放到缓存中。

2.会话缓存

session cache,主要适用于 session 共享 (string 类型)

3.排行榜/计数器

(NGINX+lua+redis 计数器进行 IP 自动封禁)(zset)

4.消息队列

(构建实时消息系统,聊天,群聊) (list)

5.粉丝 (set)

6.存储对象 (hash)

安装及启动

1.下载 wget

        yum -y wget

2.cd /usr/新建文件夹

3.下载redias

        wget https://download.redis.io/releases/redis-5.0.14.tar.gz

4.安装 redis 所依赖的环境

        yum -y install gcc-c++

5.解压 redis

        tar -zxvf redis-5.0.14.tar.gz

6.进入解压目录

        cd redis-5.0.14/

7.编译与安装

        编译 make

        安装 make PREFIX=/usr/新建文件夹 install (如果不加prefix 默认安装到/usr/local/)

安装成功之后查看redis在哪里安装

        which redis-server

8.启动redis

        cd /usr/local/bin

        ./redis-server

ctrl + c 终止

配置与连接

1.拷贝配置文件到安装目录的 bin

cp /usr/解压的文件夹/redius-5.0.14/redius.conf /usr/local/bin

2. vim /usr/local/bin/redis.conf

3.设置后台启动

daemonize no 改成 yes

4.设置密码(客户端连接的话需要设置密码 如果不需要连接不用设置)

requirepass root 

5.设置远程连接

bind 127.0.0.1 #注释掉绑定本机,才可以远程连接访问

bind 127.0.0.1 修改为  0.0.0.0

6.启动 redis

进入bin目录下 cd /usr/local/bin

启动 ./redis-server ./redis.conf

7.连接redis(没有设置密码可以不输入密码)

./redis-cli -p 6379 -a root

或 ./redis-cli 后 输入 auth root (确认没有修改默认端口并且设置了密码)

8.关闭 redis

./redis-cli shutdown

或 ./redis-cli -p 6379 -a root -h 127.0.0.1 shutdown

9.测试远程

redis-cli -h (虚拟机IP) -p (端口号port) -a (设置的密码)

ping 测试

quit 关闭连接(connection)

外部连接AnotherRedisDesktopManager

 AnotherRedisDesktopManager 是一个更快、更好、更稳定的Redis桌面 -LRB- GUI -RRB- 管理客户端,兼容Windows、Mac、Linux,性能出众,轻松加载海量键值

 AnotherRedisDesktopManager下载

github:

Releases · qishibo/AnotherRedisDesktopManager (github.com)

Gitee:

AnotherRedisDesktopManager 发行版 - Gitee.com

配置服务启动(使用 systemctl 的方法)

服务启动的时候 daemonize 改为 no

在/lib/systemd/system 目录下创建一个脚本文件 redis.service

[Unit]
Description=Redis
After=network.target
[Service]
ExecStart=/usr/local/bin/redis-server /usr/local/bin/redis.conf
ExecStop=/usr/local/bin/redis-cli -h 127.0.0.1 -p 6379 -a root shutdown
[Install]
WantedBy=multi-user.target

systemctl daemon-reload 刷新配置

systemctl enable redis 开机自启

systemctl status redis redis 状态

systemctl start redis 开启 redis

systemctl stop redis 关闭 redis

systemctl disable redis 禁止开机自启

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1134628.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3中使用svg并封装成组件

打包svg地图 安装插件 yarn add vite-plugin-svg-icons -D # or npm i vite-plugin-svg-icons -D # or pnpm install vite-plugin-svg-icons -D使用插件 vite.config.ts import { VantResolver } from unplugin-vue-components/resolvers import { createSvgIconsPlugin } from…

【C语言初阶】switch语句的基本语法

🎬 鸽芷咕:个人主页 🔥 个人专栏:《速学C语言》《数据结构篇》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言💬 switch语句的介绍💬 switch语句的语法形式💭 在switch语句中的 break&…

景联文科技提供4D-BEV标注工具:提升自动驾驶感知能力的精准数据支持

4D-BEV标注是一种用于自动驾驶领域的数据标注方法。在3D空间的基础上,加入了时间维度,形成了四个维度。这种方法通过精准地跟踪和记录动态对象(如车辆、行人)的运动轨迹、姿势变化以及速度等信息,全面理解和分析动态对…

JWT的登录认证与自校验原理分析

目录 一、JWT的概述 1.什么是JWT? 2.JWT的用户认证 3.JWT解决了什么问题? 4.关于JWT中的签名如何理解? 5.JWT的优势 二、JWT的结构 1.令牌的组成: 2.JWT的工具类 3.JWT所需的依赖 4.JWT登录生成Token的原理 三、JWT的自…

Linux中关于glibc包导致的服务器死机或者linux命令无法使用的情况

glibc是gnu发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX …

智能巡检系统可以应用在哪些地方?巡检系统有什么优势?

智能巡检系统可以广泛应用于学校、物业、工厂、酒店和民宿、运维商以及能源行业等不同领域的巡检管理之中,为用户提供了巡检任务安排管理、签到打卡、工单上报处理以及数据统计分析等多种功能。 一、巡检系统的应用场景   1、学校:为了确保学校各项设施…

【抓包分析】通过ChatGPT解密还原某软件登录算法实现绕过手机验证码登录

文章目录 🍋前言实现效果广告抓包分析一、定位加密文件二、编辑JS启用本地替换 利用Chatgpt进行代码转换最后 🍋前言 由于C站版权太多,所有的爬虫相关均为记录,不做深入! 今天发现github上没有这个东西,抓…

Centos7 防火墙的关闭

Centos7 防火墙的关闭 Centos7默认使用的是firewall作为防火墙; 查看防火墙状态:firewall-cmd --state 停止防火墙:systemctl stop firewalld.service; 禁止防火墙开机启动:systemctl disable firewalld.service; 放行端口…

项目总结-新增商品-Pagehelper插件分页查询

(1)新增商品 工具类: /** * Title: FileUtils.java * Package com.qfedu.common.utils * Description: TODO(用一句话描述该文件做什么) * author Feri * date 2018年5月29日 * version V1.0 */ package com.gdsdxy.common.u…

webpack 解决:TypeError: merge is not a function 的问题

1、问题描述: 其一、存在的问题为: TypeError: merge is not a function 中文为: 类型错误:merge 不是函数 其二、问题描述为: 想执行 npm run dev 命令,运行起项目时,控制台报错 TypeErro…

066:mapboxGL的marker的drag,dragstart,dragend三种触发事件示例

第066个 点击查看专栏目录 本示例是演示如何在vue+mapbox中处理marker的三种触发事件drag,dragstart,dragend。 marker通过on(‘XXX’, callback),的方式进行触发处理。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(…

医学YOLOv8 | 脑肿瘤检测 Accuracy 99%

在医疗保健领域,准确和高效地识别脑肿瘤是一个重大挑战。本文中,我们将探讨一种使用 YOLOv8,一种先进的目标检测模型,将脑肿瘤进行分类的新方法,其准确率达到了 99%。通过将深度学习与医学图像相结合,我们希…

Python算法例1 完美平方

例1 完美平方 1. 问题描述 给定一个正整数n,找到若干个完全平方数(例如:1,4,9,…),使得它们的和等于n,完全平方数的个数最少。 2.问题示例 给出n8,返回2&…

【51单片机】:智能施工电梯系统

项目效果: 基于51单片机的智能施工电梯系统 摘 要 智能施工电梯系统目前广泛应用于人们建筑工程中,为人们施工时上下搬运提供了极大的便利。智能施工电梯系统包括密码开启、超重提示,电梯运作及相关信息显示等等功能,施工电梯为我…

数组中出现次数超过一半的数字整型数组有一个数字出现的次数超过总数的一半,请找出该数字

例如长度为 9 的数组{1,2,3,2,4,2,5,2,2}。 由于 2 出现的次数是 5 次,超过一半,所以结果为2。 算法一: 先排序,然后中间值就是要找的数字 图解: int Cmp_int(const void* vp1, const void* vp2) //定义排序规则 {return * (int*)vp1 - *(int*)vp2; } …

ts | js | 爬虫小公举分享

Curl转Code 快速将curl转为各种语言的代码; 便于提取请求头之类, 或者微改直接使用 https://curlconverter.com/node-axios/ (有点慢, 但是很全)https://www.lddgo.net/convert/curl-to-code (没有axios, 我喜欢用axios) 使用… 抓取地址, 使用浏览器或者其他抓包工具都可, 这…

IP地址在互联网中有哪些作用?

在互联网中,IP地址是一种用于唯一标识网络中设备的地址。IP地址不会与其他网络地址(如MAC地址、URL、域名等)发生冲突,因为它们各自在不同的网络层次上起作用,用于不同的目的。 IP地址(Internet Protocol A…

vue3中常用的新组件

一、Fragment vue2中,组件必须有一个根标签 vue3中,组件可以没有根标签,内部会将多个标签包含在一个Fragment虚拟元素中。 优点:减少标签层级。 二、Teleport(传送门) 作用:将组件的 html …

企事业单位/公司电脑文件透明加密保护 | 防泄密软件\系统!

推荐——「天锐绿盾电脑文件防泄密系统」 一款全面的企业/公司数据透明加密防泄密系统,旨在从源头上保障数据的安全和使用安全。 PC访问地址: https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 它具有以下特点&#xff1a…

小程序 swiper滑动 层叠滑动效果

整个红色区域为可滑动区域&#xff0c;数字1区域为展示区域&#xff0c;数字2为下一个展示模块 <scroll-view class"h_scroll_horizontal" enhanced"ture" bind:touchend"touchEnd" bind:touchstart"touchStart"><view clas…