• 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 命令提供密码。
    
    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 的配置文件和常用命令进行详细描述。

  • 相关阅读:
    安装MinGW-w64
    C++11异步任务轮子实现(header-only)
    激活MacBook的时候有个“文件保险箱磁盘加密“的选项,要不要开启
    Flume集成Kafka
    搭载AI之后的表格插件又有哪些新的改变
    list的const迭代器的实现
    移动端吸顶方案
    借助第三方工具网站完成消息自动推送
    美团三面:让你怀疑人生的Spring Boot夺命连环40问
    基于大模型做txt文档拆分的方法
  • 原文地址:https://blog.csdn.net/G_whang/article/details/139699543