MacOS安装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 的配置文件和常用命令进行详细描述。

相关推荐
vcshcn9 分钟前
DBASE DBF数据库文件解析
数据库·dbase
会飞的爱迪生1 小时前
mac安装wireshark
测试工具·macos·wireshark
AIGC大时代2 小时前
对比DeepSeek、ChatGPT和Kimi的学术写作撰写引言能力
数据库·论文阅读·人工智能·chatgpt·数据分析·prompt
如风暖阳2 小时前
Redis背景介绍
数据库·redis·缓存
lingllllove3 小时前
Redis脑裂问题详解及解决方案
数据库·redis·缓存
字节全栈_BjO3 小时前
mysql死锁排查_mysql 死锁问题排查
android·数据库·mysql
微光守望者3 小时前
Redis常见命令
数据库·redis·缓存
凌波漫步&3 小时前
通过Redisson构建延时队列并实现注解式消费
redis·电商平台·redisson订单自动取消
martian6654 小时前
第六篇:事务与并发控制
数据库
x-cmd6 小时前
[250202] DocumentDB 开源发布:基于 PostgreSQL 的文档数据库新选择 | Jekyll 4.4.0 发布
数据库·postgresql·开源