Redis从入门到精通(一:Redis入门)

news2024/9/27 9:30:17

Redis 简介

 

 问题现象

  • 海量用户
  • 高并发
罪魁祸首——关系型数据库
  • 性能瓶颈:磁盘IO性能低下
  • 扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群
解决思路
  • 降低磁盘IO次数,越低越好  —— 内存存储
  • 去除数据间关系,越简单越好 —— 不存储关系,仅存储数据
Nosql
NoSQL:即 Not-Only SQL( 泛指非关系型的数据库),作为关系型数据库的补充。
作用:应对基于海量用户和海量数据前提下的数据处理问题。
特征:
  • 可扩容,可伸缩
  • 大数据量下高性能
  • 灵活的数据模型
  • 高可用

常见 Nosql 数据库:

  • Redis
  • memcache
  • HBase
  • MongoDB
解决方案(电商场景)

Redis

概念:Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。

特征:
  1. 数据间没有必然的关联关系
  2. 内部采用单线程机制进行工作
  3. 高性能。官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。
  4. 多数据类型支持
  • 字符串类型     string
  • 列表类型         list
  • 散列类型         hash
  • 集合类型         set
  • 有序集合类型  zset/sorted_set
5. 支持持久化,可以进行数据灾难恢复

Redis 的应用
  • 为热点数据加速查询(主要场景),如热点商品、热点新闻、热点资讯、推广类等高访问量信息等
  • 即时信息查询,如各位排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设备信号等
  • 时效性信息控制,如验证码控制、投票控制等
  • 分布式数据共享,如分布式集群架构中的 session 分离
  • 消息队列

Redis 的下载与安装

基于源码的安装Redis
配套资源:
redis相关安装包以及安装手册https://download.csdn.net/download/weixin_44680802/87390415
下载安装包
wget http://download.redis.io/releases/redis-5.0.0.tar.gz
解压安装包
tar –xvf redis-5.0.0.tar.gz
编译(在解压的目录中执行)
make
安装(在解压的目录中执行)
make install

安装完成后进入我们的src目录,查看可执行的redis命令

  • redis-server          服务器启动命令
  • redis-cli         客户端启动命令
  • redis.conf         redis核心配置文件
  • redis-check-dump         RDB文件检查工具(快照持久化文件)
  •  redis-check-aof         AOF文件修复工具

Redis服务器启动
启动服务器——参数启动
redis-server [--port port]
范例
redis-server --port 6379

启动服务器——配置文件启动
redis-server config_file_name
范例
redis-server redis.conf
Redis客户端启动
启动客户端
redis-cli [-h host] [-p port]
范例
redis-cli –h 61.129.65.248 –p 6384
注意:服务器启动指定端口使用的是--port,客户端启动指定端口使用的是-p。-的数量不同

Redis基础环境设置约定
创建配置文件存储目录
mkdir conf
创建服务器文件存储目录(包含日志、数据、临时配置文件等)
mkdir data

配置文件中的配置:

服务器端设定
设置服务器以守护进程的方式运行,开启后服务器控制台中将打印服务器运行信息(同日志内容相同)
daemonize yes|no
绑定主机地址
bind ip
设置服务器端口号
port port
设置服务器文件保存地址
dir path
客户端配置
服务器允许客户端连接最大数量,默认0,表示无限制。当客户端连接到达上限后,Redis会拒绝新的连接
maxclients count
客户端闲置等待最大时长,达到最大值后关闭对应连接。如需关闭该功能,设置为 0
timeout seconds
日志配置
设置服务器以 指定日志记录级别
loglevel debug |verbose| notice | warning
日志记录文件名
logfile filename
注意:日志级别开发期设置为verbose即可,生产环境中配置为notice,简化日志输出量,降低写日志IO的频度

Redis 的基本操作
信息读写
设置 key,value 数据
set key value
范例
set name itheima
根据 key 查询对应的 value,如果不存在,返回空(nil)
get key
范例
get name
帮助信息

获取命令帮助文档
help [command]
范例
help set
获取组中所有命令信息名称
help [ @ group-name]
范例
help @string

退出命令行客户端模式
退出客户端
quit
exit
快捷键
Ctrl+C

 基于yum的安装Redis

直接使用yum安装redis(yum install redis)

启动redis(service redis start),并查看redis启动状态(service redis status)

 

 设置redis开机启动(systemctl enable redis)

请添加图片描述

 编辑redis配置文件(vi /etc/redis.conf)

 设置redis连接密码
requirepass 你的redis密码

允许远程连接,在(bind 127.0.0.1)前添加 # 注释掉改行,并将protected-mode 设置为no

 重启redis(systemctl restart redis),并在服务器里进入redis数据库(redis-cli),输入(auth + 你的redis密码)显示OK,就说明连接成功

请添加图片描述

 远程连接
redis客户端百度能找到挺多的,我使用的是AnotherRedisDesktopManager,安装后点击左上角新建连接,按下图填写连接信息,Auth处填写redis连接密码,连接名可随意:

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

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

相关文章

ucore lab1,lab2,lab3,lab4链表详解 获取结构体成员偏移

ucore版链表介绍 ucore是清华大学操作系统实验课要完成的操作系统,里面有个链表数据结构我觉得很有意思,记录下来。 ucore将链表与数据对象分离,使得任意数据对象,只要加上一个链表组件就能组织成一个链表。 要使得一个本来不具…

双目相机国产、非国产统计参数对比分析

双目相机国产、非国产统计参数对比分析 ZED ZED是STEREOLABS出品的双目摄像头,广泛应用在科研机构的无人车、协作机械臂上,如图2-1所示。其3D分辨率在Ultra模式下可达到RGB时的分辨率,具体见图2-2,物理尺寸为1753033mm&#xff…

记录一次gateway HandlerStrategies.withDefaults().messageReaders() 导致的内存炸裂的问题

背景 年前出现了一次内存炸裂的生产事故。导致其他请求无法请求通过。 [boundedElastic-55] [Loggers.java:314]:Scheduler worker in group main failed with an uncaught exception [TID:] 2023-01-18 10:40:33.189 [INFO] [boundedElastic-55] [AccessTokenGatewayFilterF…

Arduino基础学习——meArm(太极创客第二部分)

面包板电源模块为机器臂单独供电,机器臂本身有四个小电机驱动作用,如果单独靠arduino来为这四个小电机供电,机器臂可能不会稳定工作,将会抖动。 机械臂的四个动作主要靠四个电机来控制,这四个电机主要连接在我们的ard…

云端IDE系列教程4:TitanIDE + Typora = 鱼和熊掌

概述 目前,大部分技术人员使用 Markdown 编写技术文档已经成了日常工作的一部分,现在市场上也有各种各样的文字编辑工具:石墨文档、有道云笔记、语雀、金山文档、腾讯文档、Google文档,WPS、Office、Typora等。但在云原生时代&am…

vue3学习笔记(总)——ts+组合式API(setup语法糖)

文章目录1. ref全家桶1.1 ref()1.2 isRef()以及isProxy()1.3 shallowRef()1.4 triggerRef()1.5 customRef()1.6 unref()2. reactive全家桶2.1 reactive()2.2 readonly()2.3 shallowReactive() 和 shallowReadonly()3. to系列全家桶3.1 toRef()3.2 toRefs()3.3 toRaw()4. comput…

【年度总结】回看2022,展望2023,做更好的自己

作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云…

Mac 下ZooKeeper安装和使

Mac 下ZooKeeper安装和使用 Apache ZooKeeper分布式协调系统是构建分布式应用程序的高性能服务。 1.下载ZooKeeper 环境要求:ZooKeeper服务器是用Java创建的,它运行在JVM之上。需要安装JDK 7或更高版本。 https://zookeeper.apache.org/releases.html …

1.3 PCIe——硬件实现架构

PCIe的设计可以分为controller和PHY,整体设计较为复杂,一般可向IP厂商定制设计,controller和PHY模块的接口是PIPE接口 一、一般实现架构 1.1 PCIE controller 控制器逻辑包含了IP的host设计,以及PCIe协议中所规定的事务层、数…

AirServer电脑投屏软件免费版使用及切换中文教程

AirServer是由App Dynamic打造的一款投屏软件。AirServer是适用于Mac和Windows的先进的屏幕镜像接收器。可以将手机设备,如iPhone、iPad、安卓上的屏幕投送到电脑屏幕上。特别我们日常开会要给客户演示手机上的操作时,投屏就显得非常专业。当然&#xff…

关于java位移运算的一点讨论

框架乱飞的年代,时常还得往框架源码里看,对内在原理没点理解,人家就会认为你不太行。平时开发你可能没咋用过位移运算,但往源码里一看,就时常能看到它。我也是看着看着,突然仔细一琢磨,又不由得…

【机器学习 - 4】:线性回归算法

文章目录线性回归线性回归的理解损失函数简单线性回归封装线性回归算法线性回归算法在sklearn中调用线性回归算法向量化运算线性回归模型中的误差均方误差 MSE均方根误差平均绝对误差调用sklearn中的均方根误差和平均绝对误差函数R squared error (常用)…

结构光相机国产、非国产统计参数对比分析

结构光相机国产、非国产统计参数对比分析 1. Kinect v1 Kinect v1深度相机拥有一个RGB彩色摄像头,一个红外线CMOS摄像机和一个红外发射器。相机的红外线CMOS摄像机和红外发射器以左右水平的方式分布。该相机采用的是以结构光为基础进行改进后的光编码(…

【SpringCloud16】SpringCloud Sieuth分布式请求链路跟踪

1.概述 1.1 为什么会出现这个技术? 问题: 在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中…

Linux服务器离线安装Gitlab

1、下载 1.1、网址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ 1.2、选择版本 2、安装 2.1、将安装包上传到服务器 2.2、检查相关依赖是否安装 使用命令 rpm -qa | grep -i (要查看的依赖名);如果安装了&#…

OpenAI DALL·E 绘画机器人

快过年了,在公司也没啥任务,索性尝试使用OpenAI的DALLE生成一些好玩的图片。 OpenAI DALLE 官方介绍: DALLE 是一种由 OpenAI 开发的大型语言模型,其能够通过生成图像和文本来完成各种任务。其名称来源于绘画机器人 WALLE 和艺术家…

2023年准备报考软考,考哪个?

一般建议从软考中级考试考,科目多,难度也不大!关于中级科目。计算机软件类包括:软件评测师、软件设计师、软件过程能力评估师。计算机网络类包括:网络工程师。计算机应用技术类包括:多媒体应用设计师、嵌入…

DBCO-PEG-OPSS_OPSS-PEG-DBCO_二苯并环辛烯PEG巯基吡啶

DBCO 试剂是一类点击化学标记试剂,含有非常活泼的 DBCO((二苯并环辛炔)基团,DBCO 试剂可以通过无铜点击化学与叠氮化物标记的分子或生物分子发生反应。DBCO 点击化学可以在水性缓冲液中运行,也可以在有机溶…

机器学习知识总结 —— 16.如何实现一个简单的SVM算法

文章目录创建具有特征的二维数据实现SVM算法线性核函数梯度下降和损失函数训练实验效果总结在前面的章节里,已经简要的介绍了SVM算法的工作原理,现在在这篇文章里,我们来看看SVM算法的一些简单实现。 创建具有特征的二维数据 一般来说&…

【闪电侠学netty】第8章 客户端与服务端通信协议编解码

【Netty】读书笔记 - 跟闪电侠学 1. 内容概要 1.1 总结 1.1.1 编码与解码定义 编码:把java对象根据协议封装成二进制数据包的过程 解码:从二进制数据包中解析出Java对象的过程 1.1.2 设计了如下几个类 文件名类型描述Serializerinterface 作用&#…