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

Windows&Linux&MacOS如何快速搭建Redis

mhr18 2024-10-28 16:15 23 浏览 0 评论

前言

Redis是一种NoSQL(not-only sql,泛指非关系型数据库)的数据库。由 C 语言开发的一个开源的高性能键值对(key-value)的内存数据库,可以用作数据库、缓存、消息中间件等。

官网地址:https://redis.io/

中文官方地址:http://www.redis.cn/

Redis常见的数据类型有:

  • String: 字符串
  • Hash: 哈希
  • List: 列表
  • Set: 集合
  • Sorted Set: 有序集合

在日常的开发或测试过程中,经常会接触到Redis。工欲善其事必先利其器,下面简单介绍一下Redis在Windows、Linux、Mac上的快速搭建过程。

一、Windows下安装Redis

Redis 支持 32 位和 64 位。根据系统平台的实际情况选择即可。下载地址:https://github.com/tporadowski/redis/releases

配置好环境变量,切换到 redis 目录下运行:

redis-cli.exe -h 127.0.0.1 -p 6379

二、Linux下安装Redis

1.手工方式安装

下载地址:http://redis.io/download,下载最新稳定版本。以6.0.6版本为例:

wget http://download.redis.io/releases/redis-6.0.6.tar.gz

Redis-6.0.6版本安装步骤如下:

① 关闭防火墙

systemctl stop firewalld 
systemctl disable firewalld

② 升级GCC

CentOS默认安装的GCC是4.8.5的版本,Redis6依赖gcc 5以上的版本

yum install gcc 
gcc -v 
yum -y install centos-release-scl  # 升级到9.1版本 
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils 
scl enable devtoolset-9 bash

③ 解压安装Redis

tar xzf redis-6.0.6.tar.gz 
cd redis-6.0.6 
make & make install

make完后 redis-6.0.6目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli,两个程序位 于安装目录 src 目录下。

④ 配置环境变量

vi /etc/profile  # 编辑配置文件,添加环境变量信息
source /etc/profile  # 重载配置文件

添加配置文件的内容:

export REDIS_HOME=/home/redis-6.0.6 export

PATH=$PATH:$REDIS_HOME/src

⑤ 修改配置文件redis.conf

bind 192.168.1.123 # 默认为127.0.0.1,即本地回环地址,只能通过本机的客户端连接,而无法通过远程连接。bind设置为本机IP地址,允许任意计算机通过此IP地址连接,如本机有两个IP1和IP2,当bind设置了IP1时,那么只能通过IP1连接redis,而通过IP2无法连接。

daemonize yes # 后台启动

protected‐mode no # 保护模式,默认yes开启状态,为了限制公网访问redis,加强安全性。启用条件:① protected mode设置为yes;② 没有bind ip;③ 没有设置访问密码;(以上条件必须同时满足,否则不会开启保护机制)

⑥ 启动redis服务

cd src
./redis-server  # 以默认方式启动Redis
./redis-server ../redis.conf  # 指定配置文件方式启动Redis

⑦ 启动Redis客户端

./redis-cli  # 以默认方式启动Redis客户端,127.0.0.1、6379
./redis-cli -h 192.168.1.123 -p 6379  # 启动Redis客户端,并指定连接的主机和端口号

⑧ 测试Redis连通性

通过一段Python代码简单测试redis连通性:

import redis


class RedisHandler:
    def __init__(self, host, port=6379, db=0):
        self.client = redis.StrictRedis(host=host, port=port, db=db)  # 生成客户端连接,StrictRedis()默认使用连接池,不必再单独使用ConnectPool


    def set_string(self, name: str, value, ex=None, px=None, nx=False, xx=False) -> None:
        """
        缓存中写入str(单个)
        :param name: 缓存名称
        :param value: 缓存值
        :param ex: 过期时间(秒)
        :param px: 过期时间(毫秒)
        :param nx: 如果设置为True,则只有name不存在时,当前set操作才执行(新增)
        :param xx: 如果设置为True,则只有name不存在时,当前set操作才执行(修改)
        :return:
        """
        self.client.set(name, value=value, ex=ex, px=px, nx=nx, xx=xx)


    def get_key(self, name):
        """读取缓存"""
        print(self.client.get(name))


if __name__ == '__main__':
    redis = RedisHandler(host='192.168.1.123')
    redis.set_string("test1", 0)
    redis.get_key("test1")

2.shell脚本方式安装

① redis_server_install.sh 脚本内容与解析

#!/bin/sh
cur_pass=`pwd`  # 定义当前所在路径的变量
redis_install_long=$cur_pass"/redis_log"
echo "==`date`==REDIS INSTALL START====" >>$redis_install_long
if [ $# -ne 2 ];then
   echo "==`date`==INSTALL REDIS SERVER PARA ERROR====" >>$redis_install_long
   exit -1
fi
echo "PARA NUMBER [$@]" >>$redis_install_long
if [ -d "/usr/local/redis" ];then
   echo "==`date`==REDIS INSTALL EXISTS====" >>$redis_install_long
   exit 0
fi
dbserverip=$1  # 定义传入的参数,执行时传入本机地址
rm -fr redis-6.0.8  # 删除原有的解压目录
`tar zxf redis-6.0.8.tar.gz`  # 解压缩
cd redis-6.0.8
make PREFIX=/usr/local/redis install
cp utils/redis_init_script  /etc/rc.d/init.d/redis
if [ ! -d "/etc/redis/" ];then
   mkdir -p /etc/redis/  # 创建Redis配置文件目录
fi
sed s/dbserverip/$dbserverip/g -i redis.conf  # 替换配置文件中的dbserverip
if [ ! -d "/home/jumploo/data/" ];then
   mkdir -p /home/jumploo/data/  # 创建Redis数据目录
fi
cp redis.conf  /etc/redis/6379.conf
echo "==`date`==REDIS INSTALL SUCCESS====" >>$redis_install_long
/etc/init.d/redis start > /dev/null 2>&1  &  # 启动Redis

② 安装Redis

chmod +x redis_server_install.py
./redis_server_install.py 192.168.1.123

三、MacOS安装Redis

1.安装gcc

brew install gcc

gcc安装后可在/usr/bin目录中查看到

2.将编译工具从clang改为gcc

由于Mac系统默认使用的是clang,在make时会报错,因此需要将编译工具从clang改为gcc

① 打开配置文件:vi ~/.zprofile,并在末尾添加如下内容:

由于安装的是gcc-11版本,因此需要配置为11

② 重新加载配置文件:

source ~/.zprofile

③ 此时再通过gcc --version命令查看版本时,显示的就是gcc的相关信息,而不再是clang了

3.下载解压Redis

通过wget命令在线下载,或直接解压附件安装包,或到官网http://redis.io/download下载均可,通过wget命令下载的话需要先安装wget工具

① 安装wget工具:

brew install wget

② 下载redis:

brew install wget
wget http://download.redis.io/releases/redis-6.0.6.tar.gz

③ 解压Redis

tar -xvf redis-6.0.6.tar.gz
cd redis-6.0.6

④ make

make

4.启动Redis

./redis-server

启动成功会显示如下图标:

5.redis安装过程中常见报错及解决办法

① make install 报错”install: /usr/local/bin/redis-server: Permission denied“

尝试使用sudo make install命令代替make install,安装成功后,系统会自动将redis-6.0.6/src下的相关脚本复制到/usr/local/bin下

相关推荐

如何检查 Linux 服务器是物理服务器还是虚拟服务器?

在企业级运维、故障排查和性能调优过程中,准确了解服务器的运行环境至关重要。无论是物理机还是虚拟机,都存在各自的优势与限制。在很多场景下,尤其是当你继承一台服务器而不清楚底层硬件细节时,如何快速辨识它是...

第四节 Windows 系统 Docker 安装全指南

一、Docker在Windows上的运行原理(一)架构限制说明Docker本质上依赖Linux内核特性(如Namespaces、Cgroups等),因此在Windows系统上无法直...

C++ std:shared_ptr自定义allocator引入内存池

当C++项目里做了大量的动态内存分配与释放,可能会导致内存碎片,使系统性能降低。当动态内存分配的开销变得不容忽视时,一种解决办法是一次从操作系统分配一块大的静态内存作为内存池进行手动管理,堆对象内存分...

Activiti 8.0.0 发布,业务流程管理与工作流系统

Activiti8.0.0现已发布。Activiti是一个业务流程管理(BPM)和工作流系统,适用于开发人员和系统管理员。其核心是超快速、稳定的BPMN2流程引擎。Activiti可以...

MyBatis动态SQL的5种高级玩法,90%的人只用过3种

MyBatis动态SQL在日常开发中频繁使用,但大多数开发者仅掌握基础标签。本文将介绍五种高阶技巧,助你解锁更灵活的SQL控制能力。一、智能修剪(Trim标签)应用场景:动态处理字段更新,替代<...

Springboot数据访问(整合Mybatis Plus)

Springboot整合MybatisPlus1、创建数据表2、引入maven依赖mybatis-plus-boot-starter主要引入这个依赖,其他相关的依赖在这里就不写了。3、项目结构目录h...

盘点金州勇士在奥克兰13年的13大球星 满满的全是...

见证了两个月前勇士与猛龙那个史诗般的系列赛后,甲骨文球馆正式成为了历史。那个大大的红色标志被一个字母一个字母地移除,在周四,一切都成为了过去式。然而这座,别名为“Roaracle”(译注:Roar怒吼...

Mybatis入门看这一篇就够了(mybatis快速入门)

什么是MyBatisMyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为M...

Springboot数据访问(整合druid数据源)

Springboot整合druid数据源基本概念SpringBoot默认的数据源是:2.0之前:org.apache.tomcat.jdbc.pool.DataSource2.0及之后:com.z...

Linux 中的 &quot;/etc/profile.d&quot; 目录有什么作用 ?

什么是/etc/profile.d/目录?/etc/profile.d/目录是Linux系统不可或缺的一部分保留配置脚本。它与/etc/profile文件相关联,这是一个启动脚本,该脚...

企业数据库安全管理规范(企业数据库安全管理规范最新版)

1.目的为规范数据库系统安全使用活动,降低因使用不当而带来的安全风险,保障数据库系统及相关应用系统的安全,特制定本数据库安全管理规范。2.适用范围本规范中所定义的数据管理内容,特指存放在信息系统数据库...

Oracle 伪列!这些隐藏用法你都知道吗?

在Oracle数据库中,有几位特殊的“成员”——伪列,它们虽然不是表中真实存在的物理列,但却能在数据查询、处理过程中发挥出意想不到的强大作用。今天给大家分享Oracle伪列的使用技巧,无论...

Oracle 高效处理数据的隐藏神器:临时表妙用

各位数据库搬砖人,在Oracle的代码世界里闯荡,处理复杂业务时,是不是总被数据“搅得头大”?今天给大家安利一个超实用的隐藏神器——临时表!当你需要临时存储中间计算结果,又不想污染正式数据表...

Oracle 数据库查询:多表查询(oracle多表关联查询)

一、多表查询基础1.JOIN操作-INNERJOIN:返回两个表中满足连接条件的匹配行,不保留未匹配数据。SELECTa.emp_id,b.dept_nameFROMempl...

一文掌握怎么利用Shell+Python实现多数据源的异地备份程序

简介:在信息化时代,数据安全和业务连续性已成为企业和个人用户关注的焦点。无论是网站数据、数据库、日志文件,还是用户上传的文档、图片等,数据一旦丢失,损失难以估量。尤其是当数据分布在多个不同的目录、服务...

取消回复欢迎 发表评论: