Redis --- 入门、数据类型
一、前言
1.1、什么是Redis
Redis是一个基于内存的key-value结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件,它是「Remote Dictionary Service」的首字母缩写,也就是「远程字典服务」。
- 基于内存存储,读写性能高
- 适合存储热点数据(热点商品、资讯、新闻)
- 企业应用广泛
1.2、使用Redis能做什么
-
数据缓存
-
消息队列
-
注册中心
-
发布订阅
二、Redis入门
2.1、Redis简介
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. 翻译为:Redis是一个开源的内存中的数据结构存储系统,它可以用作:数据库、缓存和消息中间件。
官网:https://redis.io
Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供的数据是可以达到100000+的QPS(每秒内查询次数)。它存储的value类型比较丰富,也被称为结构化的NoSql数据库。
NoSql(Not Only SQL),不仅仅是SQL,泛指非关系型数据库。NoSql数据库并不是要取代关系型数据库,而是关系型数据库的补充。
关系型数据库(RDBMS):
-
Mysql
-
Oracle
-
DB2
-
SQLServer
非关系型数据库(NoSql):
-
Redis
-
Mongo db
-
MemCached
2.2、Redis下载与安装
Redis下载:
Redis安装包分为windows版和Linux版:
-
Windows版下载地址:Releases · microsoftarchive/redis · GitHub
-
Linux版下载地址: Index of /releases/
下载后得到下面安装包:

Redis安装:
在Linux中安装Redis
在Linux系统安装Redis步骤:
将Redis安装包上传到Linux
解压安装包,命令:==tar -zxvf redis-4.0.0.tar.gz -C /usr/local==
安装Redis的依赖环境gcc,命令:==yum install gcc-c++==
进入/usr/local/redis-4.0.0,进行编译,命令:==make==
进入redis的src目录进行安装,命令:==make install==
安装后重点文件说明:
- /usr/local/redis-4.0.0/src/redis-server:Redis服务启动脚本
- /usr/local/redis-4.0.0/src/redis-cli:Redis客户端脚本
- /usr/local/redis-4.0.0/redis.conf:Redis配置文件
在Windows中安装Redis
Redis的Windows版属于绿色软件,直接解压即可使用,解压后目录结构如下:
2.3、Redis服务启动与停止
Linux系统中启动和停止Redis
执行Redis服务启动脚本文件
./redis-server
通过启动日志可以看到,Redis默认端口号为 6379 。
Ctrl + C 停止Redis服务
通过 redis-cli 可以连接到本地的Redis服务,默认情况下不需要认证即可连接成功。
退出客户端可以输入 exit 或者 quit 命令。
Windows系统中启动和停止Redis
Windows系统中启动Redis,直接双击redis-server.exe即可启动Redis服务,redis服务默认端口号为6379
Ctrl + C 停止Redis服务
双击 redis-cli.exe 即可启动Redis客户端,默认连接的是本地的Redis服务,而且不需要认证即可连接成功。
退出客户端可以输入 exit 或者 quit 命令。
2.4、Redis配置文件
前面我们已经启动了Redis服务,默认情况下Redis启动后是在前台运行,而且客户端不需要密码就可以连接到Redis服务。如果我们希望Redis服务启动后是在后台运行,同时希望客户端认证通过后才能连接到Redis服务,应该如果做呢?
此时就需要修改Redis的配置文件:
-
Linux系统中Redis配置文件:REDIS_HOME/redis.conf
-
Windows系统中Redis配置文件:REDIS_HOME/redis.windows.conf
通过修改Redis配置文件可以进行如下配置:
1)设置Redis服务后台运行
将配置文件中的 daemonize 配置项改为yes,默认值为no。
注意:Windows版的Redis不支持后台运行。
2)设置Redis服务密码
将配置文件中的 # requirepass foobared 配置项取消注释,默认为注释状态。foobared为密码,可以根据情况自己指定。
3)设置允许客户端远程连接Redis服务
Redis服务默认只能客户端本地连接,不允许客户端远程连接。将配置文件中的 bind 127.0.0.1 配置项注释掉。
解释说明:
Redis配置文件中 # 表示注释
Redis配置文件中的配置项前面不能有空格,需要顶格写
daemonize:用来指定redis是否要用守护线程的方式启动,设置成yes时,代表开启守护进程模式。在该模式下,redis会在后台运行
requirepass:设置Redis的连接密码
bind:如果指定了bind,则说明只允许来自指定网卡的Redis请求。如果没有指定,就说明可以接受来自任意一个网卡的Redis请求。
注意:修改配置文件后需要重启Redis服务配置才能生效,并且启动Redis服务时需要显示的指定配置文件:
Linux中启动Redis服
# 进入Redis安装目录 cd /usr/local/redis-4.0.0 # 启动Redis服务,指定使用的配置文件 ./src/redis-server ./redis.conf
Windows中启动Redis服务
由于Redis配置文件中开启了认证校验,即客户端连接时需要提供密码,此时客户端连接方式变为:
![]()
解释说明:
- -h:指定连接的Redis服务的ip地址
- -p:指定连接的Redis服务的端口号
- -a:指定连接的Redis服务的密码
三、Redis数据类型
3.1、介绍
Redis存储的是key-value结构的数据,其中key是字符串类型,value有5种常用的数据类型:
-
字符串 string
-
哈希 hash
-
列表 list
-
集合 set
-
有序集合 sorted set / zset
3.2、Redis 5种常用数据类型

解释说明:
字符串(string):普通字符串,常用
哈希(hash):适合存储对象
列表(list):按照插入顺序排序,可以有重复元素
集合(set):无序集合,没有重复元素
有序集合(sorted set / zset):集合中每个元素关联一个分数(score),根据分数升序排序,没有重复元素
相关文章:
Redis --- 入门、数据类型
一、前言 1.1、什么是Redis Redis是一个基于内存的key-value结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件,它是「Remote Dictionary Service」的首字母缩写,也就是「远程字典服务」。 基于内存存储,读写性能高适合存储热点…...
超级详解MySQL执行计划explain
1、什么是MySQL执行计划 要对执行计划有个比较好的理解,需要先对MySQL的基础结构及查询基本原理有简单的了解。 MySQL本身的功能架构分为三个部分,分别是 应用层、逻辑层、物理层,不只是MySQL ,其他大多数数据库产品都是按这种架构…...
C++流操作
C引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含<sstream>这个头文件。 在C中标准库提供三个类用于文件操作,统称为文件流类: ifstream:专用于从文件中读取数据;ofs…...
Django连接Redis、数据库、mongodb密码明文存储问题以及方案
文章目录 DDjango连接Redis、数据库、mongodb密码明文存储问题以及方案需求背景常见解决方案Django中redis、数据库密码明文加密存储方案 DDjango连接Redis、数据库、mongodb密码明文存储问题以及方案 需求背景 密码不应以明文出现在代码或配置文件中。 常见解决方案 在Dja…...
Qt实现仿微信在线聊天工具(服务器、客户端)V1_ 02
上一篇设计了登录和聊天窗口,并实现了窗口切换,本章将继续实现其他模块 本章内容 完善登录验证实现自定义窗口的拖动效果 完善登录验证 对登录的输入框进行输入限定,这里我限制登录id为6位纯数字组合,密码长度不超过16位 设置…...
Direct local .aar file dependencies are not supported when building an AAR.
前言 起因:项目中含有视频播放功能,使用的是GSYVideoPlayer,因为公司网络问题经常依赖添加不了,所以将关于它的aar包全部下载下来直接本地依赖。 因为多个业务都可能涉及视频播放功能,为了复用,就想着将视频…...
【Java基础】day16
day16 一、switch-case 和 if-else 谁更快? switch-case 在 switch-case 中,case 的值是连续的话,会生成一个 TableSwitch 来进行优化,这样的情况下,只需要在表中进行判断即可。 这里使用 0-4 的连续值来进行测试 如…...
Neo4j | 一文入门Neo4j!
下面是一些基本的Cypher查询语句: 创建节点 CREATE (n:Person {name:Alice})这会创建一个标签为Person、属性name值为Alice的节点。 创建节点之间的关系 MATCH (a:Person {name:Alice}), (b:Person {name:Bob}) CREATE (a)-[:FRIEND]->(b)这会创建Alice和Bob…...
Python科研数据可视化
在过去的20 年中,随着社会产生数据的大量增加,对数据的理解、解释与决策的需求也随之增加。而固定不变是人类本身,所以我们的大脑必须学会理解这些日益增加的数据信息。所谓“一图胜千言”,对于数量、规模与复杂性不断增加的数据&…...
叫板IT部门和专业软件公司,低代码成为企业数字化的新选择
从2017年政府将“数字经济”写入工作报告,到今年两会将企业数字化转型列为重点议题,数字化的口号已喊了6年。政策对于数字化的支持越来越坚定,令人欣喜的是,越来越多具有远见卓识的企业已将数字化建设作为工作重心。 然而…...
leetcode 541. 反转字符串 II
题目描述解题思路执行结果 leetcode 541. 反转字符串 II 题目描述 反转字符串 II 给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个,则将剩余字符全…...
java数据类型的转换以及精度丢失
java数据类型的转换以及精度丢失_long转double会丢失精度吗_ღLiJia的博客-CSDN博客 一.浮点类型在计算机当中的存储 float存储需求是4字节(32位), 其中1位最高位是符号位,中间8位表示阶位,后32位表示值 float的范围: -2^128 ~ …...
网络通信基础 - 多路复用技术(频分多路复用、时分多路复用、波分多路复用)
文章目录 1 概述1.1 复用器 MUX 2 分类2.1 频分多路复用 FDM2.2 时分多路复用 TDM2.3 波分多路复用 WDM 1 概述 1.1 复用器 MUX 多路复用技术:把多个低速信道组合成一个高速信道的技术这种技术要用到两个设备,统称为 多路器(MUX)…...
Baumer工业相机堡盟工业相机如何通过BGAPISDK的函数转换示Bayer格式为BGR8格式彩色图像(C++)
Baumer工业相机堡盟工业相机如何通过BGAPISDK的函数转换示Bayer格式为BGR8格式彩色图像(C) Baumer工业相机Baumer工业相机的Bayer彩色图像的技术背景Baumer工业相机通过BGAPI SDK在回调函数里显示Bayer彩色图像Baumer工业相机在BufferEvent转换Bayer格式…...
一块钱看Android Debug: avc denied 已存在的目录不能访问
某三方应用,使用了USB摄像头,启动应用后功能不能使用,看log有如下错误, denied后面{}里的是要执行的动作,比如append,open,execmod,link等等 scontext指的是域,对应的是te文件 上面报错这条对应te文件是untrusted_app.te, scontex…...
URL 转为QR code(二维码)
推荐一个良心的网站,能够免费地将url、text编码为二维码,而且还能设计logo、颜色等。 https://www.the-qrcode-generator.com/ 如下图: 可以自己定义logo、颜色: 还能查看扫描历史等统计信息: 上述所有功能都是免…...
CentOS软件那么老为什么大家还要用它?
作为一个专业的服务器系统,RHEL 系统理论上每一个软件包都有 RedHat 内部的人员负责维护,这个维护包括长期(和系统生命周期一样长)的开发、更新、测试、运维等。也就是说你能从 RHEL 系统源上获得的每一个软件包,出现问…...
聚观早报|飞猪:五一出游需求爆发;特斯拉一季度盈利同比跌20%
今日要闻:飞猪:五一出游需求爆发;特斯拉一季度盈利同比暴跌20%;郑渊洁永远不再发表作品;KargoBot推出无人化自动驾驶卡车;中国6G通信技术研发取得重要突破 飞猪:五一出游需求爆发 4 月 19 日&a…...
Redis缓存雪崩、穿透、击穿
Redis缓存雪崩、穿透、击穿 解决方案正常的缓存流程Redis缓存雪崩Redis缓存雪崩解决方案 Redis缓存穿透Redis缓存穿透解决方案 Redis缓存击穿Redis缓存击穿解决方案 解决方案 布隆过滤器,分布式锁 正常的缓存流程 Redis缓存雪崩 Redis中的key大面积失效࿰…...
不要老盯着ChatGPT,这几家公司的产品同样不容小觑
Adept.ai 2022 年成立,致力于一款能够代替人类使用电脑、操控软件的AI助手,旗下模型 ACT-1 还处于雏形阶段,但根据官方示例,已经可以完成通过自然语言指令完成特定的任务。公司创始人曾任OpenAI的工程副总裁,后来进入谷…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...





