Redis安装

  • Windows 安装 Redis(.msi)
  • Linux 安装
  • Redis通过rpm离线安装 方法一:
  • 1、检查是否存在redis安装包
  • 2、若未找到redis安装包,则安装epel-release源
  • 3、查询是否存在redis
  • 4、正常查询,出现
  • 5、下载安装包
  • 6、安装
  • 7、启动redis
  • 8、登录
  • Redis通过rpm离线安装 方法二:
  • 下载rpm包
  • 安装
  • 运行并设置自启动
  • 设置自启动
  • 登录
  • 源码包安装
  • [CentOS 7 源码编译安装 Redis]
  • 1.下载源码并解压
  • 2.编译
  • 3.安装
  • 4.更改配置
  • 5.配置环境变量
  • 6.配置启动脚本
  • 7.开启自启动设置
  • 8.启动测试
  • Ubuntu apt 命令安装
  • 启动 Redis
  • 查看 redis 是否启动?
  • docker安装redis并以配置文件方式启动
  • 联系作者


Windows 安装 Redis(.msi)

exe 包安装亦如此

Github 下载地址:https://github.com/microsoftarchive/redis/releases

下载的时候下载 msi 安装文件:

1.首先双击现在完的安装程序

2.点击 next

3.点击接受,继续 next

4.设置 Redis 的服务端口,默认为 6379,默认就好,单击 next

5.选择安装的路径,并且打上勾(这个非常重要),添加到 path 是把 Redis 设置成 windows 下的服务,不然你每次都要在该目录下启动命令 redis-server redis.windows.conf,但是只要一关闭 cmd 窗口,redis 就会消失,这样就比较麻烦。

6.设置 Max Memory,然后 next 进入安装
如果 redis 的应用场景是作为数据库使用,那不要设置这个选项,因为数据库是不能容忍丢失数据的。
如果作为临时缓存那就得看自己的需要(我这里设置了 1024M 的最大内存限制)
指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap区。

7.安装完成

8.测试所安装的Redis

如果你是和我一样通过msi文件的安装,你可以在 “计算机管理→服务与应用程序→服务” 看到Redis正在运行

你也可以将它停止(不停止会出现错误代码为 18012 的错误,表示本机端口 6379 被占用),然后在 cmd 窗口进入Redis的安装路径的根目录

输入命令 redis-server.exe redis.windows.conf,出现下图证明 Redis 服务启动成功:

下面进行测试:

你可以在 Redis 的安装根目录下找到 redis-cli.exe 文件启动(我用的是这种方法),或在 cmd 中先进入 Redis 的安装根目录用命令 redis-cli.exe -h 192.168.10.61 -p 6379(注意换成自己的 IP,本地可以是 127.0.0.1)的方式打开

Linux 安装

Redis通过rpm离线安装 方法一:

有时需要离线安装redis,所以需要redis离线安装包,不同的centos版本和redis版本,依赖包不同,本例中,centos: CentOS Linux release 7.0.1406 (Core),Basic Web Server版本,自动下载的redis版本为3.2.12

rpm_install_redis.sh:

yum -y install gcc-c++
yum -y install epel-release
yum install --downloadonly --downloaddir=/work redis
rpm -ivh /work/*
systemctl start redis
echo "Redis Have Installed"
redis-cli

1、检查是否存在redis安装包

yum search redis

2、若未找到redis安装包,则安装epel-release源

yum -y install epel-release

3、查询是否存在redis

若出现如下异常,则在/usr/lib/python2.7/site-packages/urlgrabber/grabber.py中1510行左右将elif errcode in (42, 55, 56) 改为elif errcode == 42 ,然后再次查询

[root@localhost ~]# yum search redis
Loaded plugins: fastestmirror, langpacks
epel/x86_64/metalink                                     | 6.9 kB  00:00:00     
epel                                                     | 4.7 kB  00:00:00     
epel/x86_64/primary_db         FAILED                                          
https://mirror.lzu.edu.cn/epel/7/x86_64/repodata/d1d0107c74472c4a2af56fa4436caafe3c76a57c446b11b54901609d26893a17-primary.sqlite.bz2: [Errno 14] curl#35 - "Cannot communicate securely with peer: no common encryption algorithm(s)."
Trying other mirror.
Traceback (most recent call last):
  File "/usr/libexec/urlgrabber-ext-down", line 75, in <module>
    main()
  File "/usr/libexec/urlgrabber-ext-down", line 61, in main
    fo = PyCurlFileObject(opts.url, opts.filename, opts)
  File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1258, in __init__
    self._do_open()
  File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1589, in _do_open
    self._do_grab()
  File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1723, in _do_grab
    self._do_perform()
  File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1517, in _do_perform
    raise KeyboardInterrupt
KeyboardInterrupt

4、正常查询,出现

redis.x86_64 : A persistent key-value database

则源安装成功

5、下载安装包

yum install --downloadonly --downloaddir=/work redis

出现

exiting because "Download Only" specified

下载结束,查看redis

[root@localhost ~]# whereis redis
redis:[root@localhost ~]# ll /work/
total 660
-rw-r--r--. 1 root root 107040 Apr  2  2014 jemalloc-3.6.0-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 556969 Oct 26 15:10 redis-3.2.12-2.el7.x86_64.rpm

[root@localhost ~]#

redis安装包及依赖包下载完成,并且没有安装

6、安装

rpm -ivh /work/*

安装结束后,查看redis安装情况

[root@localhost ~]# whereis redis
redis: /etc/redis.conf

7、启动redis

(开机启动文件在redis安装完成后,自动放入/usr/lib/systemd/system/中)

systemctl start redis

cat /usr/lib/systemd/system/redis.service

[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/bin/redis-server /etc/redis.conf --supervised systemd
ExecStop=/usr/libexec/redis-shutdown
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target

8、登录

[root@localhost ~]# redis-cli 
127.0.0.1:6379>

Redis通过rpm离线安装 方法二:

RPM包下载地址:Download 去复制里面的Binary Package

手动下载地址:http://rpms.remirepo.net/enterprise/7/remi/x86_64/ 手动下载需要 上传服务器

.sh脚本

yum -y install gcc-c++
yum install epel-release  -y
yum install jemalloc -y
wget https://rpms.remirepo.net/enterprise/7/remi/x86_64/redis-6.0.12-1.el7.remi.x86_64.rpm
rpm -Uvh redis-6.0.12-1.el7.remi.x86_64.rpm
systemctl start redis
redis-cli

Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。

下载rpm包

打开地址 进入根据自己的 平台以及需要安装的redis版本进去下载对应的rpm包,这里我们以redis 3.0.7为例安装:

[root@21yunwei src]# wget https://rpms.remirepo.net/enterprise/7/remi/x86_64/redis-6.0.12-1.el7.remi.x86_64.rpm

安装

[root@21yunwei src]# rpm -Uvh redis-6.0.12-1.el7.remi.x86_64.rpm

这里需要注意一下,如果是新拿的系统或者未安装jemalloc库的时候一般会报错:

[root@21yunwei src]# rpm  -ivh  redis-3.0.7-4.el6.art.x86_64.rpm 
warning: redis-3.0.7-4.el6.art.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 4520afa9: NOKEY
error: Failed dependencies:
	libjemalloc.so.1()(64bit) is needed by redis-3.0.7-4.el6.art.x86_64

解决办法:

yum install epel-release  -y
yum install jemalloc -y

再次安装,问题解决:

[root@21yunwei src]# rpm -Uvh redis-6.0.12-1.el7.remi.x86_64.rpm
warning: redis-3.0.7-4.el6.art.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 4520afa9: NOKEY
Preparing...                ########################################### [100%]
   1:redis                  ########################################### [100%]

运行并设置自启动

启动新安装的redis:

[root@21yunwei src]# systemctl start redis

设置自启动

[root@21yunwei src]# chkconfig  redis on

这里安装的redis未进行任何设置或者优化,都是默认的;具体使用还是需要根据自己的业务需求或者安全设置进行调整。

登录

[root@localhost ~]# redis-cli 
127.0.0.1:6379>

源码包安装

[CentOS 7 源码编译安装 Redis]

#永久修改gcc版本
#echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
wget http://download.redis.io/releases/redis-6.0.12.tar.gz
tar -xzf redis-6.0.12.tar.gz
cd redis-6.0.12
make
make PREFIX=/usr/local/redis install
mkdir /usr/local/redis/etc/
cp redis.conf /usr/local/redis/etc/
cd /usr/local/redis/bin/
cp redis-benchmark redis-cli redis-server /usr/bin/
echo 'export PATH="$PATH:/usr/local/redis/bin"' >> /etc/profile
source /etc/profile


echo ''' 
#!/bin/bash
#chkconfig: 2345 80 90
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
REDIS_CLI=/usr/local/redis/bin/redis-cli
   
PIDFILE=/var/run/redis.pid
CONF="/usr/local/redis/etc/redis.conf"
   
case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        if [ "$?"="0" ] 
        then
              echo "Redis is running..."
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $REDIS_CLI -p $REDISPORT SHUTDOWN
                while [ -x ${PIDFILE} ]
               do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
   restart|force-reload)
        ${0} stop
        ${0} start
        ;;
  *)
    echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
        exit 1
esac
''' >> redis

cp redis /etc/init.d/

# 给脚本增加运行权限
chmod +x /etc/init.d/redis

# 查看服务列表
chkconfig --list

# 添加服务
chkconfig --add redis

# 配置启动级别
chkconfig --level 2345 redis on
# 7
systemctl restart redis
/etc/init.d/redis start|stop|restart|reload|status
# 6
service redis start
/etc/init.d/redis start|stop|restart|reload|status
echo " flushall " | redis-cli
echo "Redis installed."

1.下载源码并解压

yum -y install gcc gcc-c++ kernel-devel
wget http://download.redis.io/releases/redis-6.0.12.tar.gz
tar -xzf redis-6.0.12.tar.gz
cd redis-6.0.12

2.编译

make

6.0+版本 编译过程中会出现这个错误

make[1]: *** [server.o] Error 1
make[1]: Leaving directory `/root/redis-6.0.1/src'
make: *** [install] Error 2

解决方法:

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
 
#临时修改gcc版本
scl enable devtoolset-9 bash
#永久修改gcc版本
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

报错:

cd src && make test
make[1]: 进入目录“/root/redis-6.0.12/src”
You need tcl 8.5 or newer in order to run the Redis test
make[1]: *** [test] 错误 1
make[1]: 离开目录“/root/redis-6.0.12/src”
make: *** [test] 错误 2

解决方法:

cd ~
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
sudo tar xzvf tcl8.6.1-src.tar.gz  -C /usr/local/
cd  /usr/local/tcl8.6.1/unix/
sudo ./configure
sudo make
sudo make install
cd ~

等待编译完成

3.安装

make PREFIX=/usr/local/redis install
mkdir /usr/local/redis/etc/
cp redis.conf /usr/local/redis/etc/
cd /usr/local/redis/bin/
cp redis-benchmark redis-cli redis-server /usr/bin/

4.更改配置

vim /usr/local/redis/etc/redis.conf

# 修改一下配置
# redis以守护进程的方式运行
# no表示不以守护进程的方式运行(会占用一个终端)  
daemonize yes

# 客户端闲置多长时间后断开连接,默认为0关闭此功能                                      
timeout 300

# 设置redis日志级别,默认级别:notice                    
loglevel verbose

# 设置日志文件的输出方式,如果以守护进程的方式运行redis 默认:"" 
# 并且日志输出设置为stdout,那么日志信息就输出到/dev/null里面去了 
logfile stdout
# 设置密码授权
requirepass <设置密码>
# 监听ip
bind 127.0.0.1

5.配置环境变量

vim /etc/profile
export PATH="$PATH:/usr/local/redis/bin"
# 保存退出

# 让环境变量立即生效
source /etc/profile

6.配置启动脚本

#!/bin/bash
#chkconfig: 2345 80 90
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
REDIS_CLI=/usr/local/redis/bin/redis-cli
   
PIDFILE=/var/run/redis.pid
CONF="/usr/local/redis/etc/redis.conf"
   
case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        if [ "$?"="0" ] 
        then
              echo "Redis is running..."
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $REDIS_CLI -p $REDISPORT SHUTDOWN
                while [ -x ${PIDFILE} ]
               do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
   restart|force-reload)
        ${0} stop
        ${0} start
        ;;
  *)
    echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
        exit 1
esac

7.开启自启动设置

# 复制脚本文件到init.d目录下
cp redis /etc/init.d/

# 给脚本增加运行权限
chmod +x /etc/init.d/redis

# 查看服务列表
chkconfig --list

# 添加服务
chkconfig --add redis

# 配置启动级别
chkconfig --level 2345 redis on

8.启动测试

systemctl start redis   #或者 /etc/init.d/redis start  
systemctl stop redis   #或者 /etc/init.d/redis stop

# 查看redis进程
ps -el|grep redis

# 端口查看
netstat -an|grep 6379

Ubuntu apt 命令安装

在 Ubuntu 系统安装 Redis 可以使用以下命令:

# sudo apt update
# sudo apt install redis-server

启动 Redis

# redis-server

查看 redis 是否启动?

# redis-cli

以上命令将打开以下终端:

redis 127.0.0.1:6379>

127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令。

redis 127.0.0.1:6379> ping
PONG

以上说明我们已经成功安装了redis。

docker安装redis并以配置文件方式启动

1.获取redis镜像
    docker pull redis
    指定版本号:
    docker pull redis:4.0.9
    不加版本号默认获取最新版本,也可以使用 docker search redis 查看镜像来源
2.查看本地镜像 
	docker images
3.然后启动容器,做映射
    ①创建配置文件目录存放redis.conf,文件从官网下载。
    ②创建文件夹,新建配置文件贴入从官网下载的配置文件并修改
    mkdir /usr/local/docker
    vi /usr/local/docker/redis.conf
    ③修改启动默认配置(从上至下依次):
    bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
    protected-mode no #默认yes,开启保护模式,限制为本地访问
    daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
    databases 16 #数据库个数(可选),我修改了这个只是查看是否生效。。
    dir  ./ #输入本地redis数据库存放文件夹(可选)
    appendonly yes #redis持久化(可选)
4.docker启动redis命令
docker run -p 6379:6379 --name myredis -v /usr/local/docker/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
命令解释说明:
    -p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
    --name myredis  指定该容器名称,查看和进行操作都比较方便。
    -v 挂载目录,规则与端口映射相同。
    为什么需要挂载目录:个人认为docker是个沙箱隔离级别的容器,这个是它的特点及安全机制,不能随便访问外部(主机)资源目录,所以需要这个挂载目录机制。
    -d redis 表示后台启动redis
    redis-server /etc/redis/redis.conf  以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis.conf
    --appendonly yes  开启redis 持久化
5.看是否运行成功
docker ps 查看运行的容器
docker logs myredis/27ddba64faa6  (容器名称/id)
docker基本命令:
查看所有镜像 docker images
删除镜像(会提示先停止使用中的容器) docker rmi  镜像name/镜像id
查看所有容器 docker ps -a
查看容器运行日志 docker logs 容器名称/容器id
停止容器运行 docker stop 容器name/容器id
终止容器后运行 docker start 容器name/容器id
容器重启 docker restart 容器name/容器id
删除容器 docker rm 容器name/容器id