MacOS安装redis

文章目录

  • 前言
  • 一、介绍
  • 二、下载
  • 三、安装
  • 四、启动
  • 五、配置
  • 六、Redis 可视化工具下载
  • 七、配置详解
  • 八、常用命令
  • 总结


前言

Redis因其高性能和低延迟而成为现代应用程序的理想选择,尤其适合需要快速读写操作的场景。随着技术的不断发展,Redis继续在性能、功能和易用性方面进行改进。


一、介绍

Redis(Remote Dictionary Server,远程字典服务器)是一个开源的高性能键值对(key-value)数据库。它以其出色的性能、可靠性和灵活性而闻名,在多种场景下被广泛使用,包括缓存、消息队列、排行榜、实时分析等。
redis的特点如下:

  • 内存中数据存储:Redis主要将数据存储在内存中,这使得读写操作非常快速。
  • 持久化:尽管Redis是内存数据库,但它提供了持久化机制,可以将内存中的数据保存到磁盘上,防止数据丢失。
  • 支持数据结构:Redis支持多种数据结构,包括字符串(strings)、列表(lists)、集合(sets)、有序集合(sorted sets)、散列(hashes)、位图(bitmaps)、超日志(hyperloglogs)和地理空间(geospatial)索引。
  • 原子操作:Redis的所有操作都是原子性的,这意味着多个客户端可以同时访问Redis,而不会导致数据竞态或不一致。
  • 丰富的特性:Redis提供了发布/订阅机制、事务、Lua脚本、慢查询日志、监视器等高级功能。
  • 高可用性:通过Redis Sentinel(哨兵)和Redis Cluster(集群),Redis可以构建高可用的系统,自动处理节点故障和数据分片。
  • 横向扩展:Redis Cluster支持数据分片,允许Redis水平扩展,处理更大的数据集和更高的吞吐量。
  • 多语言客户端:几乎所有流行的编程语言都有Redis的客户端库,方便开发者集成和使用。
  • 社区和生态系统:Redis拥有一个活跃的开发者社区,提供大量的工具、扩展和第三方模块。
  • 适用于多种场景:Redis适用于需要快速访问数据的多种应用场景,如会话缓存、全页缓存、实时分析、排行榜、消息队列等。

二、下载

到官网下载: Redis官网地址
访问官方地址,点击 products ,选择 Downloads
在这里插入图片描述
鼠标滑到下面,找到 Redis downloads
在这里插入图片描述
点击下面的 Install Redis from source 选择对应版本下载
在这里插入图片描述
这里我下载了7.0版本的
在这里插入图片描述
如果要下载历史其他版本,点击releases page 即可
在这里插入图片描述
然后选择对应版本点击下载
在这里插入图片描述

三、安装

下载完成后,打开终端
输入命令到 Downloads目录下,如下(每个人的路径都不一样):

cd /Users/Zhuanz1(需要修改)/Downloads

然后 输入ls 命令查看文件
在这里插入图片描述
输入命令进行解压,解压完成后,Downloads下会多一个解压后的文件夹,如下:

tar -zxvf redis-7.0.15.tar.gz

在这里插入图片描述
输入命令移动文件到指定目录

sudo mv redis-7.0.15 /usr/local

在这里插入图片描述
输入命令进入到redis 目录下进行编译

cd /usr/local/redis-7.0.15/

在这里插入图片描述
输入命令进行编译测试

sudo make test

看到如下提示,编译成功
在这里插入图片描述
执行命令安装 redis

sudo make install

看到如下提示,安装成功
在这里插入图片描述

四、启动

进入到 redis 的启动目录 src下

cd src

在这里插入图片描述
输入命令,启动 redis

./redis-server

如下,启动成功
在这里插入图片描述
在redis 目录下 新建 bin,etc,db 三个目录,命令如下:

mkdir bin
mkdir etc
mkdir db

将src下的执行命令拷贝至bin目录下

cp mkreleasehdr.sh /usr/local/redis-7.0.15/bin/
cp redis-benchmark /usr/local/redis-7.0.15/bin/
cp redis-check-rdb /usr/local/redis-7.0.15/bin/
cp redis-cli /usr/local/redis-7.0.15/bin/
cp redis-server /usr/local/redis-7.0.15/bin

在这里插入图片描述
bin目录下查看
在这里插入图片描述

五、配置

到redis 目录下输入命令编辑 配置文件

vi redis.conf

i开启编辑模式,按esc退出编辑模式,输入q!不保存退出,输入wq保存配置文件退出,然后根据自己情况,修改配置文件

#后台启动
daemonize yes# 关闭保护模式,开启的话,只有本机才可以访问redis
protected-mode no# bind绑定的是自己机器网卡的ip,如果有多块网卡可以配多个ip,代表允许客户端通过机器#的哪些网卡ip去访问,内网一般可以不配置bind,注释掉即可
#bind 127.0.0.1#60 秒内有至少有 1000 个键被改动则生成rbd快照,关闭RDB生成将save注释掉即可
#配置自动生成rdb文件后台使用的是bgsave方式。
# save 60 1000#打开AOF功能
appendonly yes#每次有新命令追加到 AOF 文件时就执行一次 fsync ,非常慢,也非常安全。
# appendfsync always#每秒 fsync 一次,足够快,并且在故障时只会丢失 1 秒钟的数据。
appendfsync everysec#从不 fsync ,将数据交给操作系统来处理。更快,也更不安全的选择。
# appendfsync no#aof文件自上一次重写后文件大小增长了100%则再次触发重写
auto-aof-rewrite-percentage 100//aof文件至少要达到64M才会自动重写,文件太小恢复速度本来就很快,重写的意义不大
auto-aof-rewrite-min-size 64mb#开启混合持久化(必须先开启aof)
aof-use-rdb-preamble yes

指定 启动配置文件 不指定的话,默认读取 redis目录下 的 redis.conf

./redis-server ../redis.conf 

我开启了后台运行服务,所以没有显示启动界面了
在这里插入图片描述
可以通过命令,查看服务是否启动成功

 ps aux|grep redis

在这里插入图片描述
启动客户端,到bin目录下执行

./redis-cli

在这里插入图片描述
至此redis 安装成功

六、Redis 可视化工具下载

下载地址:https://redis.io/insight/
点击下载
在这里插入图片描述
选择与自己电脑匹配的软件包进行下载
在这里插入图片描述
下载的时候需要填写自己的相关信息,这些信息随便填写即可,只有符合他邮箱或者电话这些校验规则即可,不想填写的可以到我的云盘下载,我下载的是 Mac Apple silicon这个
https://www.123pan.com/s/Ko5rjv-OvwD3.html
提取码:Osfu

然后去安装
在这里插入图片描述
在程序中打开
在这里插入图片描述
点击 列表即可查看 redis中的值了
在这里插入图片描述

七、配置详解

Redis是一个开源的高性能键值存储系统,它的配置可以通过redis.conf文件进行详细设置。以下是一些常见的Redis配置项及其说明:

daemonize: 是否以守护进程方式运行,默认为no。设置为yes时,Redis会在后台运行。pidfile: 当Redis以守护进程方式运行时,可以通过此配置项指定其进程ID文件的位置。port: Redis监听的端口,默认为6379。bind: 绑定的主机地址,可以指定Redis只响应特定IP地址的请求。timeout: 指定客户端闲置多长时间后关闭连接,如果设置为0,则关闭该功能。loglevel: 指定日志记录级别,Redis支持四个级别:debug、verbose、notice、warning,默认为notice。logfile: 指定日志文件的路径,如果设置为stdout,则日志会输出到标准输出。databases: 设置数据库的数量,默认为16。save: 指定在多长时间内,有多少次更新操作后,将数据同步到磁盘。例如,save 900 1表示900秒内至少有1个更改时进行保存。rdbcompression: 是否在存储至本地数据库时压缩数据,默认为yes。dbfilename: 指定本地数据库文件名,默认为dump.rdb。dir: 指定本地数据库文件存放的目录。slaveof: 设置当本机为slave服务时,指向的master服务的IP地址及端口。masterauth: 当master设置了密码保护时,slave服务连接master的密码。requirepass: 设置Redis连接密码,客户端连接Redis时需要通过AUTH <password>命令提供密码。maxclients: 设置同一时间最大客户端连接数,默认无限制。maxmemory: 指定Redis最大内存限制,达到最大内存后,Redis会根据配置的策略处理内存。maxmemory-policy: 内存达到上限时的清理策略,如volatile-lru、allkeys-lru等。appendonly: 是否开启AOF持久化,如果不开启,可能会在断电时导致数据丢失。appendfilename: 指定AOF文件的名称,默认为appendonly.aof。appendfsync: 指定AOF文件的同步策略,可以设置为no、always或everysec。vm-enabled: 是否启用虚拟内存机制,该机制将数据分页存放,将访问量较少的数据swap到磁盘上。vm-swap-file: 虚拟内存文件的路径。vm-max-memory: 设置使用虚拟内存的阈值。vm-page-size: 设置swap文件中的页面大小。activerehashing: 是否激活重置哈希,默认为yes。hash-max-zipmap-entries: 指定当哈希表中的元素数量或单个元素大小超过一定值时,采用特殊的哈希算法。include: 指定包含其他配置文件的路径。

八、常用命令

Redis是一个功能丰富的键值存储系统,提供了大量的命令来操作数据。以下是一些常用的Redis命令:

#GET key: 获取键的值。
redis-cli GET mykey#SET key value: 设置键的值。
redis-cli SET mykey "Hello"#DEL key: 删除键。
redis-cli DEL mykey#EXISTS key: 检查键是否存在。
redis-cli EXISTS mykey#EXPIRE key seconds: 设置键的过期时间(秒)。
redis-cli EXPIRE mykey 3600#TTL key: 获取键的剩余生存时间(秒)。
redis-cli TTL mykey#KEYS pattern: 查找所有符合模式的键。
redis-cli KEYS "user:*"#RANDOMKEY: 随机返回一个键。
redis-cli RANDOMKEY#TYPE key: 获取键的类型。
redis-cli TYPE mykey#FLUSHDB: 清空数据库中的所有键。
redis-cli FLUSHDB#FLUSHALL: 清空所有数据库中的所有键。
redis-cli FLUSHALL#APPEND key value: 如果键存在,向键的值追加内容。
redis-cli APPEND mykey " World"#STRLEN key: 获取键值的长度。
redis-cli STRLEN mykey#SETRANGE key offset value: 从指定偏移量开始设置键的值。
redis-cli SETRANGE mykey 0 "New Value"#GETRANGE key start end: 获取键值的一部分。
redis-cli GETRANGE mykey 0 5#MSET key value [key value ...]: 同时设置多个键值对。
redis-cli MSET key1 "value1" key2 "value2"#MGET key [key ...]: 同时获取多个键的值。
redis-cli MGET key1 key2#INCR key: 将键的值增加1,如果键不存在则开始于1。
redis-cli INCR counter#DECR key: 将键的值减少1。
redis-cli DECR counter#LPUSH key value: 将值插入到列表头部。
redis-cli LPUSH mylist "item"#RPUSH key value: 将值插入到列表尾部。
redis-cli RPUSH mylist "item"#LRANGE key start stop: 获取列表中的元素范围。
redis-cli LRANGE mylist 0 -1#LREM key count value: 从列表中移除元素。
redis-cli LREM mylist 1 "item"#SADD key member [member ...]: 向集合添加元素。
redis-cli SADD myset "value1" "value2"#SREM key member [member ...]: 从集合中移除元素。
redis-cli SREM myset "value1"#SISMEMBER key member: 检查元素是否是集合的成员。
redis-cli SISMEMBER myset "value1"#SUNION key [key ...]: 获取多个集合的并集。
redis-cli SUNION myset myotherset#SINTER key [key ...]: 获取多个集合的交集。
redis-cli SINTER myset myotherset#ZADD key score member [score member ...]: 向有序集合添加元素。
redis-cli ZADD myzset 1 "one" 2 "two"#ZRANGE key start stop [WITHSCORES]: 获取有序集合中的元素范围。
redis-cli ZRANGE myzset 0 -1 WITHSCORES#ZREM key member [member ...]: 从有序集合中移除元素。
redis-cli ZREM myzset "one"#HSET key field value: 在哈希表中设置字段的值。
redis-cli HSET myhash field1 "value1"#HGET key field: 获取哈希表中字段的值。
redis-cli HGET myhash field1#HGETALL key: 获取哈希表中的所有字段和值。
redis-cli HGETALL myhash#HDEL key field [field ...]: 从哈希表中删除字段。
redis-cli HDEL myhash field1#PUBLISH channel message: 向频道发布消息。
redis-cli PUBLISH mychannel "Hello World"#SUBSCRIBE channel [channel ...]: 订阅频道。
redis-cli SUBSCRIBE mychannel#UNSUBSCRIBE channel [channel ...]: 取消订阅频道。
redis-cli UNSUBSCRIBE mychannel#CONFIG GET parameter: 获取当前的配置参数值。
redis-cli CONFIG GET maxmemory#CONFIG SET parameter value: 设置配置参数的值。
redis-cli CONFIG SET maxmemory 100mb

总结

以上就是今天要讲的内容,本文介绍了mac 系统下载安装redis,对redis 的配置文件和常用命令进行详细描述。

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

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

相关文章

电机控制安全:PWM 直通

在 H 桥中使用互补 PWM 时的一个主要考虑因素是短路的可能性&#xff0c;也称为“击穿”。 如图 5 所示&#xff0c;如果同一支路上的两个开关同时打开&#xff0c;H 桥配置可能会导致电源和接地之间发生直接短路。 如果同一条腿上的两个开关同时打开&#xff0c;则可能会发生…

ArcGIS 10.2软件安装包下载及安装教程!

今日资源&#xff1a;ArcGIS 适用系统&#xff1a;WINDOWS 软件介绍&#xff1a; ArcGIS是一款专业的电子地图信息编辑和开发软件&#xff0c;提供一种快速并且使用简单的方式浏览地理信息&#xff0c;无论是2D还是3D的信息。软件内置多种编辑工具&#xff0c;可以轻松的完成…

区间预测 | Matlab实现BP-ABKDE的BP神经网络自适应带宽核密度估计多变量回归区间预测

区间预测 | Matlab实现BP-ABKDE的BP神经网络自适应带宽核密度估计多变量回归区间预测 目录 区间预测 | Matlab实现BP-ABKDE的BP神经网络自适应带宽核密度估计多变量回归区间预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现BP-ABKDE的BP神经网络自适应带…

基于Matlab的人脸表情识别系统(GUI界面)【W4】

简介&#xff1a; 该系统是一个基于Matlab开发的人脸表情识别应用程序&#xff0c;旨在识别输入图像中的人脸表情&#xff0c;并通过直观的图形用户界面&#xff08;GUI&#xff09;向用户展示识别结果。系统结合了图像处理、机器学习和用户交互技术&#xff0c;使用户能够轻松…

攻防世界-fakebook题目__详解

1.打开题目先用dirsearch工具扫描一波&#xff0c;扫出来了robots.php目录&#xff0c;然后访问robots.txt 目录&#xff0c;发现了有一个备份文件 &#xff0c;访问备份文件&#xff0c;下载内容 文件的大致内容如下 里面有一个curl_exec这个函数容易造成ssrf攻击的漏洞 我…

基于微信小程序的童书购买系统的设计与实现

基于微信小程序的童书购买系统的设计与实现 摘 要 《“十三五”规划》第一次把“保障妇女、未成年人、残疾人的基本权利”作为重要内容&#xff0c;充分体现了党和国家对广大人民群众的关心&#xff0c;为广大人民群众营造了良好的学习氛围&#xff0c;并出台多项文件及政策&…

斯坦福ALOHA机器人团队最新论文-HumanPlus: 从人类学习的人形机器人动作模仿和自主操作

斯坦福ALOHA机器人团队最新论文-HumanPlus&#xff0c;继续推进了机器人技术的前沿进展&#xff0c;我进行了部分翻译和解读&#xff1a; HumanPlus人形机器人系统技术解读 1 简介 本教程将介绍一个名为HumanPlus的全栈式人形机器人系统。该系统能够让机器人从人类数据中学习…

【MySQL】(基础篇十二) —— 子查询

分组数据 本文介绍什么是子查询以及如何使用它们。 SQL允许我们创建子查询&#xff08;subquery&#xff09;&#xff0c;即嵌套在其他查询中的查询。这样可以实现更复杂的查询&#xff0c;理解这个概念的最好方法是考察几个例子。 利用子查询进行过滤 需求&#xff1a;查询…

Python设计模式 - 简单工厂模式

定义 简单工厂模式是一种创建型设计模式&#xff0c;它通过一个工厂类来创建对象&#xff0c;而不是通过客户端直接实例化对象。 结构 工厂类&#xff08;Factory&#xff09;&#xff1a;负责创建对象的实例。工厂类通常包含一个方法&#xff0c;根据输入参数的不同创建并返…

React+TS前台项目实战(七)-- 全局常用组件Select封装

文章目录 前言Select组件1. 功能分析2. 代码详细注释说明3. 使用方式4. 效果展示&#xff08;1&#xff09;鼠标移入效果&#xff08;2&#xff09;下拉框打开效果&#xff08;3&#xff09;回调输出 总结 前言 今天这篇主要讲全局select组件封装&#xff0c;可根据UI设计师要…

网络通信的两大支柱:TCP与UDP协议详解(非常详细)零基础入门到精通,收藏这一篇就够了

在构建现代互联网通信的基石中&#xff0c;TCP&#xff08;传输控制协议&#xff09;和UDP&#xff08;用户数据报协议&#xff09;起着至关重要的作用。本文将深入探讨两者的区别及应用场景。 1 TCP和UDP的共同点 传输层协议&#xff1a; TCP和UDP都是传输层协议&#xff…

紫光展锐5G处理器T750__国产手机芯片5G方案

展锐T750核心板采用6nm EUV制程工艺&#xff0c;CPU架构采用了八核设计&#xff0c;其中包括两个主频为2.0GHz的Arm Cortex-A76性能核心和六个主频为1.8GHz的A55小核。这种组合使得T750具备卓越的处理能力&#xff0c;并能在节能的同时提供出色的性能表现。该核心模块还搭载了M…

L51--- 144. 二叉树的前序遍历(深搜)---Java版

1.题目描述 2.思路 二叉树的前序遍历遵循 根左右 &#xff08;1&#xff09;方法 preorderTraversal 输入参数: TreeNode root root是二叉树的根节点。 返回值: List 返回一个包含二叉树节点值的列表&#xff0c;这些值按照前序遍历的顺序排列。 功能: 这个方法是前序遍历的…

微信小程序04: 获取openId和unionId

全文目录,一步到位 1.前言简介1.1 专栏传送门1.1.1 上文小总结1.1.2 上文传送门 2. 获取openId和unionId操作2.1 准备工作2.1.1 请先复制00篇的统一封装代码2.1.2 微信登录请求dto 2.2 具体代码使用与注释如下2.2.1 业务代码2.2.2 代码解释(一)[无需复制]2.2.3 获取的map使用方…

值传递和址传递

值传递 上面的代码是想要交换x&#xff0c;y的值&#xff0c;把x&#xff0c;y传递给swap函数之后&#xff0c;执行下面的操作&#xff1a; 在swap中a和b交换了&#xff0c;但是和x&#xff0c;y没有关系&#xff0c;所以x&#xff0c;y在main中不会变。 址传递 下面再看把x…

2024FIC决赛

容器密码&#xff1a;2024Fic~Competition~Finals杭州&Powered~By~HL! 案件背景: 2023年3月15日凌晨,受害人短视频平台上看到一段近期火爆的交通事故视频&#xff0c;留言后有人通过私信联系&#xff0c;称有一个赚大钱的机会&#xff0c;该人自称李某&#xff0c;提议让…

软件工程期末复习题

目录 选择 判断 选择 下列说法中正确的是 ( B )。 A、20 世纪50 年代提出了软件工程的概念摇 B、20 世纪60 年代提出了软件工程的概念 C、20 世纪70 年代出现了客户端/ 服务器技术 D、20 世纪80 年代软件工程学科达到成熟 软件危机的主要原因是 ( D )。 A、软件工具落后…

基于STM32移植U8g2图形库——OLED显示(HAL库)

文章目录 一、U8g2简介1、特点2、U8g2的使用步骤 二、I2C相关介绍1、I2C的基本原理2、I2C的时序协议 三、OLED屏的工作原理四、汉字点阵显示原理五、建立STM32CubeMX工程六、U8g2移植1、U8g2源码2、移植过程 七、代码编写1、参考博主实现的U82G的demo例程&#xff08;1&#xf…

【Linux内核】伙伴系统算法和slab分配器(1)

【Linux内核】伙伴系统算法和slab分配器&#xff08;1&#xff09; 目录 【Linux内核】伙伴系统算法和slab分配器&#xff08;1&#xff09;伙伴系统&#xff08;buddy&#xff09;算法伙伴系统算法基本原理内存申请内存回收 接口函数源码分析内存分配接口物理内存释放接口规范…

基于Wireshark实现对FTP的抓包分析

基于Wireshark实现对FTP的抓包分析 前言一、虚拟机Win10环境配置二、FileZilla客户端的安装配置下载FileZilla客户端安装FileZilla 三、FileZilla Server安装下载FileZilla Server安装 四、实现对FTP的抓包前置工作实现抓包完成抓包 前言 推荐一个网站给想要了解或者学习人工智…