百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Redis安装使用指南!最详细的Redis入门讲解

mhr18 2024-10-23 11:31 22 浏览 0 评论

Redis 是当今非常流行的基于 KV 结构的作为Cache 使用的 NoSQL数据库。学习Redis最好的方法就是动手尝试,在介绍Redis核心内容之前,本篇文章主要先来介绍一下Redis的安装和使用,以及Redis的基础知识。


视频观看效果更佳~~~戳

2021最新Redis实战

https://www.ixigua.com/6772338007803429387

Redis 介绍

Remote Dictionary Server(Redis)是一个开源的使用C 语言编写、支持网络、可基于内存亦可持久化的 Key-Value 数据库. Key 字符类型,其值(value)可以是字符串(String), 哈希(Map),列表(list), 集合(sets) 和有序集合(sorted sets)等类型,每种数据类型有自己的专属命令。所以它通常也被称为数据结构服务器。

Redis 的作者是 Antirez,来自意大利的西西里岛,现在居住在卡塔尼亚。目前供职于Pivotal 公司(Pivotal 是 Spring 框架的开发团队),Antirez 被称为 Redis 之父。

Redis的代码托管在GitHub上https://github.com/antirez/redis,开发十分活跃,代码量只有3万多行。

官网:https://redis.io/

中文:http://www.redis.cn/

Window 上安装 Redis

Windows 版本的 Redis 是 Microsoft 的开源部门提供的 Redis. 这个版本的 Redis 适合开发人员学习使用,生产环境中使用 Linux 系统上的 Redis

(1) 下载

官网:https://redis.io/

windows 版本:https://github.com/MSOpenTech/redis/releases

(2) 安装

下载的 Redis-x64-3.2.100.zip 解压后,放到某个目录(例如 d:\tools\),即可使用。目录结构:

(3) 启动

1. Windows7 系统双击 redis-server.exe 启动 Redis

2. Windows 10 系统

有的机器双击 redis-server.exe 执行失败,找不到配置文件,可以采用以下执行方式: 在命令行(cmd)中按如下方式执行:

D:\tools\Redis-x64-3.2.100>redis-server.exe redis.windows.conf

如图:

(4) 关闭

按 ctrl+c 退出Redis 服务程序。

Linux 上安装 Redis

(1) 安装

1. 上传 redis-4.0.13.tar.gz 到 linux 系统。使用 Xftp 工具

2. 解压 redis-4.0.13.tar.gz 到/usr/local 目录

3. 查看解压后的文件

切换目录 cd /usr/local

执行 ll

4. 安装 gcc 编译器

Redis 是使用 c 语言编写的。使用源文件安装方式,需要编译 c 源文件,会使用 gcc 编译器。

什么是 gcc ?

gcc 是 GNU compiler collection 的缩写,它是 Linux 下一个编译器集合(相当于 javac ),是c 或 c++程序的编译器。

使用yum进行安装gcc 。执行命令:yum -y install gcc

在解压后的 Redis 目录下执行(cd /usr/local/redis-4.0.13) make 命令。

5. 编译 redis 源文件

1) 开始执行 make

cd /usr/local/redis-4.0.13 再执行 make

如果 make 命令执行过程中出现错误:

error: jemalloc/jemalloc.h: No such file or directory

解决方式执行 make MALLOC=libc

2)执行 make 成功的标志

3)查看make编译结果,cd src目录

cd src 在执行 ls

(2) 启动 Redis

redis 安装目录下 redis.conf 是重要的配置文件,包含 redis 服务器的配置信息。启动redis 需要指定配置文件路径。

启动方式:

①前台启动 ./redis-server redis.conf 配置文件路径

②后台启动 ./redis-server redis.conf 配置文件路径 &

第①种 前台启动

启动 Redis 的服务器端:切换到 src 目录下执行redis-server 程序

或者使用全路径

redis 应用以前台的方式启动,不能退出当前窗口,退出窗口,应用终止。

在其他窗口查看redis 启动的进程

第②种 后台启动

src目录下执行 ./redis-server redis.conf配置文件路径 &

此时关闭窗口,查看redis进程,依然存在。

查看redis进程

(3) 关闭 Redis

关闭方式:

①使用 redis 客户端关闭,向服务器发出关闭命令

切换到 redis-4.0.13/src/ 目录,执行 ./redis-cli shutdown

推荐使用这种方式, redis 先完成数据操作,然后再关闭。

例如:

②kill pid 或者 kill -9 pid

这种不会考虑当前应用是否有数据正在执行操作,直接就关闭应用。先使用 ps -ef | grep redis 查出进程号,在使用 kill pid

Redis 客户端

Redis 客户端是一个程序,通过网络连接到 Redis 服务器,在客户端软件中使用 Redis 可

以识别的命令,向 Redis 服务器发送命令,告诉 Redis 想要做什么。Redis 把处理结果显示在客户端界面上。通过 Redis 客户端和 Redis 服务器交互。

Redis 客户端发送命令,同时显示 Redis 服务器的处理结果在。

redis 命令行客户端:

redis-cli(Redis Command Line Interface)是 Redis 自带的基于命令行的Redis 客户端,用于与服务端交互,我们可以使用该客户端来执行redis 的各种命令。

两种常用的连接方式:

1. 直接连接 redis (默认 ip127.0.0.1,端口 6379):./redis-cli

在 redis 安装目录/src,执行 ./redis-cli

此命令是连接本机 127.0.0.1 ,端口 6379 的 redis

2. 指定 IP 和端口连接 redis:./redis-cli -h 127.0.0.1 -p 6379

-h redis 主机 IP(可以指定任意的 redis 服务器)

-p 端口号(不同的端口表示不同的redis 应用)

在 redis 安装目录/src,执行 ./redis-cli -h 127.0.0.1 -p 6379

例 1:

redis 远程客户端

Redis Desktop Manager:C++ 编写,响应迅速,性能好。官网地址:https://redisdesktop.com/

点击“DOWNLOAD”

1. 安装客户端软件

在 Windows 系统使用此工具,连接 Linux 上或 Windows 上的 Redis , 双击此exe 文件执行安装

安装后启动界面:

使用客户端连接 Linux 的 Redis

连接Linux的Reids之前需要修改Redis服务器的配置信息。 Redis服务器有安全保护措施,默认只有本机(安装Redis的那台机器)能够访问。配置信息存放在Redis安装目录下的redis.conf文件。修改此文件的两个设置。

远程连接redis需要修改redis主目录下的redis.conf配置文件:

①. bind ip 绑定ip此行注释

②. protected-mode yes 保护模式改为 no

使用vim 命令修改redis.conf 文件,修改文件前备份此文件,执行 cp 命令

执行 vim redis.conf

3. 使用 redis.conf 启动 Redis

修改配置文件后,需要使用配置文件重新启动 Reids,默认不加载配置文件。先关闭已经启

动的 Redis ,使用以下命令启动 Redis 在 Redis 安装目录执行:

./redis-server ../redis.conf &

4. 关闭 Linux 系统的防火墙

linux 系统,命令行执行:systemctl stop firewalld

5. 配置 Redis Desktop Manamager(RDM),连接 Redis

在 RDM 的主窗口,点击左下的“Connect to Redis Server”

连接成功后:

redis 编程客户端

Jedis

redis 的 Java 编程客户端,Redis 官方首选推荐使用 Jedis,jedis 是一个很小但很健全的

redis 的 java 客户端。通过Jedis 可以像使用 Redis 命令行一样使用Redis。

  • jedis 完全兼容redis 2.8.x and 3.x.x
  • Jedis 源码:https://github.com/xetorthio/jedis
  • api 文档:http://xetorthio.github.io/jedis/

redis 的其他编程语言客户端:

C 、C++ 、C# 、Erlang、Lua 、Objective-C、Perl 、PHP 、Python 、Ruby、Scala 、Go 等 40 多种语言都有连接redis 的编程客户端

Redis 基本操作命令

redis 默认为 16 个库 (在redis.conf 文件可配置,该文件很重要,后续很多操作都是这个配置文件) redis 默认自动使用 0 号库

(1) 沟通命令,查看状态

redis >ping 返回 PONG

解释:输入 ping,redis 给我们返回 PONG,表示 redis 服务运行正常

(2) 查看当前数据库中 key 的数目:dbsize

语法:dbsize

作用:返回当前数据库的 key 的数量。返回值:数字,key 的数量

例:先查索引 5 的 key 个数, 再查 0 库的 key 个数

(3) redis 默认使用 16 个库

Redis默认使用16个库,从0到15。 对数据库个数的修改,在redis.conf 文件中databases 16

(4) 切换库命令:select db

使用其他数据库,命令是 select index

例 1: select 5

(5) 删除当前库的数据:flushdb

(6) redis 自带的客户端退出当前 redis 连接:exit 或 quit

Redis 的Key 的操作命令

1. keys

语法:keys pattern

作用:查找所有符合模式 pattern 的 key. pattern 可以使用通配符。通配符:

  • *:表示 0-多个字符,例如:keys * 查询所有的 key。
  • ?:表示单个字符,例如:wo?d , 匹配 word , wood

例 1:显示所有的 key

例 2:使用 *表示 0 或多个字符

例 3:使用?表示单个字符

2. exists

语法:exists key [key…]

作用:判断key 是否存在

返回值:整数,存在 key 返回 1,其他返回 0.使用多个 key,返回存在的key 的数量。

例 1:检查指定 key 是否存在

例 2:检查多个 key

3. expire

语法:expire key seconds

作用:设置key 的生存时间,超过时间,key 自动删除。单位是秒。返回值:设置成功返回数字 1,其他情况是 0 。

例 1:设置红灯的倒计时是 5 秒

4. ttl

语法:ttl key

作用:以秒为单位,返回 key 的剩余生存时间(ttl: time to live) 返回值:

  • -1 :没有设置 key 的生存时间, key 永不过期。
  • -2:key 不存在
  • 数字:key 的剩余时间,秒为单位

例 1:设置 redlight 的过期时间是 10,查看剩余时间

5. type

语法:type key

作用:查看key 所存储值的数据类型返回值:字符串表示的数据类型

  • none (key 不存在)
  • string (字符串)
  • list (列表)
  • set (集合)
  • zset (有序集)
  • hash (哈希表)

例 1:查看存储字符串的 key:wood

例 2:查看不存在的key

6. del

语法:del key [key…]

作用:删除存在的key,不存在的key 忽略。返回值:数字,删除的 key 的数量。

例 1:删除指定的 key

相关推荐

Redis合集-使用benchmark性能测试

采用开源Redis的redis-benchmark工具进行压测,它是Redis官方的性能测试工具,可以有效地测试Redis服务的性能。本次测试使用Redis官方最新的代码进行编译,详情请参见Redis...

Java简历总被已读不回?面试挂到怀疑人生?这几点你可能真没做好

最近看了几十份简历,发现大部分人不是技术差,而是不会“卖自己”——一、简历死穴:你写的不是经验,是岗位说明书!反面教材:ד使用SpringBoot开发项目”ד负责用户模块功能实现”救命写法:...

redission YYDS(redission官网)

每天分享一个架构知识Redission是一个基于Redis的分布式Java锁框架,它提供了各种锁实现,包括可重入锁、公平锁、读写锁等。使用Redission可以方便地实现分布式锁。red...

从数据库行锁到分布式事务:电商库存防超卖的九重劫难与破局之道

2023年6月18日我们维护的电商平台在零点刚过3秒就遭遇了严重事故。监控大屏显示某爆款手机SKU_IPHONE13_PRO_MAX在库存仅剩500台时,订单系统却产生了1200笔有效订单。事故复盘发...

SpringBoot系列——实战11:接口幂等性的形而上思...

欢迎关注、点赞、收藏。幂等性不仅是一种技术需求,更是数字文明对确定性追求的体现。在充满不确定性的网络世界中,它为我们建立起可依赖的存在秩序,这或许正是技术哲学最深刻的价值所在。幂等性的本质困境在支付系...

如何优化系统架构设计缓解流量压力提升并发性能?Java实战分享

如何优化系统架构设计缓解流量压力提升并发性能?Java实战分享在高流量场景下。首先,我需要回忆一下常见的优化策略,比如负载均衡、缓存、数据库优化、微服务拆分这些。不过,可能还需要考虑用户的具体情况,比...

Java面试题: 项目开发中的有哪些成长?该如何回答

在Java面试中,当被问到“项目中的成长点”时,面试官不仅想了解你的技术能力,更希望看到你的问题解决能力、学习迭代意识以及对项目的深度思考。以下是回答的策略和示例,帮助你清晰、有说服力地展示成长点:一...

互联网大厂后端必看!Spring Boot 如何实现高并发抢券逻辑?

你有没有遇到过这样的情况?在电商大促时,系统上线了抢券活动,结果活动刚一开始,服务器就不堪重负,出现超卖、系统崩溃等问题。又或者用户疯狂点击抢券按钮,最后却被告知无券可抢,体验极差。作为互联网大厂的后...

每日一题 |10W QPS高并发限流方案设计(含真实代码)

面试场景还原面试官:“如果系统要承载10WQPS的高并发流量,你会如何设计限流方案?”你:“(稳住,我要从限流算法到分布式架构全盘分析)…”一、为什么需要限流?核心矛盾:系统资源(CPU/内存/数据...

Java面试题:服务雪崩如何解决?90%人栽了

服务雪崩是指微服务架构中,由于某个服务出现故障,导致故障在服务之间不断传递和扩散,最终造成整个系统崩溃的现象。以下是一些解决服务雪崩问题的常见方法:限流限制请求速率:通过限流算法(如令牌桶算法、漏桶算...

面试题官:高并发经验有吗,并发量多少,如何回复?

一、有实际高并发经验(建议结构)直接量化"在XX项目中,系统日活用户约XX万,核心接口峰值QPS达到XX,TPS处理能力为XX/秒。通过压力测试验证过XX并发线程下的稳定性。"技术方案...

瞬时流量高并发“保命指南”:这样做系统稳如泰山,老板跪求加薪

“系统崩了,用户骂了,年终奖飞了!”——这是多少程序员在瞬时大流量下的真实噩梦?双11秒杀、春运抢票、直播带货……每秒百万请求的冲击,你的代码扛得住吗?2025年了,为什么你的系统一遇高并发就“躺平”...

其实很多Java工程师不是能力不够,是没找到展示自己的正确姿势。

其实很多Java工程师不是能力不够,是没找到展示自己的正确姿势。比如上周有个小伙伴找我,五年经验但简历全是'参与系统设计''优化接口性能'这种空话。我就问他:你做的秒杀...

PHP技能评测(php等级考试)

公司出了一些自我评测的PHP题目,现将题目和答案记录于此,以方便记忆。1.魔术函数有哪些,分别在什么时候调用?__construct(),类的构造函数__destruct(),类的析构函数__cal...

你的简历在HR眼里是青铜还是王者?

你的简历在HR眼里是青铜还是王者?兄弟,简历投了100份没反应?面试总在第三轮被刷?别急着怀疑人生,你可能只是踩了这些"隐形求职雷"。帮3630+程序员改简历+面试指导和处理空窗期时间...

取消回复欢迎 发表评论: