Redis系列(1)---Redis的介绍和安装

Redis介绍

Redis是REmote DIctionary Server(远程字典服务器)的缩写,以字典结构(key-value对)存储数据,并允许其他应用通过TCP协议访问字典中的内容。Redis支持的键值数据类型有:字符串类型(string)、散列类型(hash)、列表类型(list)、集合类型(set)、有序集合类型(sorted set)。

Redis数据库中的所有数据都存储在内存中,但是Redis也提供了数据的持久化存储,即将所有的数据以异步的方式存储在硬盘上,在下次重启服务的时候,可以从硬盘上加载。

Redis安装

注意:如果需要运行make test(检查redis是否正确编译),需要安装tcl,版本最少为8.5以上。make test不是必须的。

安装tcl

[root@vm7 redis-3.2.0]# yum install -y tcl
[root@vm7 ~]# tar -zxvf redis-3.2.0.tar.gz 
[root@vm7 ~]# cd redis-3.2.0
[root@vm7 redis-3.2.0]# make
[root@vm7 redis-3.2.0]# make test
...
 All tests passed without errors!
[root@vm7 redis-3.2.0]#
[root@vm7 redis-3.2.0]# make PREFIX=/usr/local/source/redis install

说明:make PREFIX=/usr/local/source/redis install则是将相关的指令复制到PREFIX指定目录下,如果执行执行make install的话,则默认是将redis指令复制到/usr/local/bin目录。

[root@vm7 redis-3.2.0]# ls -l /usr/local/source/redis/bin/
total 26340
-rwxr-xr-x 1 root root 5585817 May 31 07:36 redis-benchmark
-rwxr-xr-x 1 root root   22177 May 31 07:36 redis-check-aof
-rwxr-xr-x 1 root root 7821380 May 31 07:36 redis-check-rdb
-rwxr-xr-x 1 root root 5712073 May 31 07:36 redis-cli
lrwxrwxrwx 1 root root      12 May 31 07:36 redis-sentinel -> redis-server
-rwxr-xr-x 1 root root 7821380 May 31 07:36 redis-server
[root@vm7 redis-3.2.0]# 

redis-server:Redis服务器,启停服务。
redis-cli:redis客户端工具
redis-benchmark:redis性能测试工具
redis-check-aof:AOF文件修复工具
redis-check-rdb:RDB文件检查工具
redis-sentinel:redis哨兵,实现redis集群的。

Redis启动脚本

复制脚本文件

[root@vm7 redis-3.2.0]# cd utils/
[root@vm7 utils]# cp -a redis_init_script /etc/init.d/redis
[root@vm7 utils]# 

修改脚本

在脚本前面添加chkconfig: 2345 80 20,使其可以被chkconfig管理

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

REDISPORT=6379
EXEC=/usr/local/source/redis/bin/redis-server
CLIEXEC=/usr/local/source/redis/bin/redis-cli

PIDFILE=/var/run/redis.pid
CONF="/usr/local/source/redis/etc/${REDISPORT}.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  
        ;;  
     status)
        if [ -f $PIDFILE ];then
            pid=$(cat $PIDFILE 2> /dev/null)
            if [ -z $pid ];then
                echo "redis is not running..."
            else
                echo "redis ($pid) is running..."
            fi
        else
            echo "redis is not running..."
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do  
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi  
        ;;  
    *)  
        echo "Please use start or stop or status as first argument"
        ;;  
esac

注册服务

[root@vm7 utils]# chkconfig --add redis
[root@vm7 utils]# chkconfig redis on
[root@vm7 utils]# chkconfig --list redis
redis           0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@vm7 utils]# 

将路径添加到PATH变量中

[root@vm7 ~]# cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

REDIS=/usr/local/source/redis/bin
APACHE=/usr/local/source/apache22/bin

PATH=$PATH:$HOME/bin:$APACHE:$REDIS

export PATH
[root@vm7 ~]# 

[root@vm7 ~]# source .bash_profile
[root@vm7 ~]#

Redis配置文件

复制配置文件

[root@vm7 redis-3.2.0]# mkdir /usr/local/source/redis/etc
[root@vm7 redis-3.2.0]# cp redis.conf /usr/local/source/redis/etc/6379.conf
[root@vm7 redis-3.2.0]# 

配置文件简单介绍

配置文件路径:/usr/local/source/redis/etc/6379.conf


bind:指定redis监听的地址。如果没有指定,则监听在所有可用地址。bind后面可用跟上多个地址,如bind 172.17.100.7 172.17.100.100

port:指定redis监听的端口。默认为6379

timeout:客户端空闲多少秒后将会关闭该连接。如果为0,则表示禁用该选项,永不关闭。

daemonize:默认为no,表示redis在前台运行,如果需要以daemon的方式运行(运行在后台),则设置为yes。

pidfile /var/run/redis.pid: 指定redis的pid文件的位置。

loglevel:日志等级。共四个,记录的详细程度从低到高依次是:debug、verbose、notice、warning。

logfile:指定日志文件记录的位置。也可以为空,当前台运行时,日志文件发送到标准输出,如果以后台运行,则日志文件发送到/dev/null。

database 16:设置数据库的个数。默认的数据库是DB 0,可以使用SELECT <dbid>在每一个连接上选择不同的数据库,但是dbid的范围为0到(database-1)


保存数据库到磁盘
save <seconds> <changes>:当DB在指定秒数后至少变化changes次,会将数据库写入到磁盘。如果不想保存到磁盘,可以将所有的save都注释掉即可。
save 900 1:将在900秒以后,至少有一个key发生改变,将保存到磁盘。
save 300 10:在300秒以后,至少有10个key发生改变,将保存到磁盘。
save 60 10000:在60秒以后,至少有10000个key发生改变,将保存到磁盘。

先介绍以上参数,当需要的时候在介绍其他参数。

启动服务并测试

[root@vm7 etc]# /etc/init.d/redis start
Starting Redis server...
[root@vm7 ~]# ps aux | grep redis
root     11293  0.2  0.9 133540  2204 ?        Ssl  13:03   0:00 /usr/local/source/redis/bin/redis-server 127.0.0.1:6379                       
root     11317  0.0  0.3 103252   824 pts/1    S+   13:04   0:00 grep redis
[root@vm7 ~]# netstat -tunlp | grep redis
tcp        0      0 172.17.100.100:6379         0.0.0.0:*                   LISTEN      11293/redis-server  
tcp        0      0 172.17.100.7:6379           0.0.0.0:*                   LISTEN      11293/redis-server  
tcp        0      0 127.0.0.1:6379              0.0.0.0:*                   LISTEN      11293/redis-server  
[root@vm7 ~]# 

测试客户端与服务器的连通性

redis提供了PING命令来测试客户端和服务器端的连通性,如果连接正常,会收到回复PONG

[root@vm7 ~]# redis-cli -h 172.17.100.7 PING
PONG
[root@vm7 ~]# redis-cli PING
PONG
[root@vm7 ~]# 

如果没有指定redis服务器的IP地址,则默认为127.0.0.1

连接Redis服务器

[root@vm7 ~]# redis-cli -h 172.17.100.7 -p 6379
172.17.100.7:6379> PING
PONG
172.17.100.7:6379> set name 'felix'
OK
172.17.100.7:6379> get name
"felix"
172.17.100.7:6379> quit
[root@vm7 ~]# 

停止Redis

  • redis-cli命令停止
[root@vm7 ~]# redis-cli -h 172.17.100.7 -p 6379 SHUTDOWN
[root@vm7 ~]# ps aux | grep redis
root     11403  0.0  0.3 103252   824 pts/2    S+   15:31   0:00 grep redis
[root@vm7 ~]# 
  • 脚本停止
    脚本停止也是调用redis-cli命令停止服务的。
root@vm7 ~]# /etc/init.d/redis start
Starting Redis server...
[root@vm7 ~]# 
[root@vm7 ~]# 
[root@vm7 ~]# ps aux | grep redis
root     11408  0.6  0.9 133540  2140 ?        Ssl  15:32   0:00 /usr/local/source/redis/bin/redis-server 127.0.0.1:6379                       
root     11412  0.0  0.3 103252   820 pts/2    S+   15:32   0:00 grep redis
[root@vm7 ~]# /etc/init.d/redis stop
Stopping ...
Redis stopped
[root@vm7 ~]# ps aux | grep redis
root     11417  0.0  0.3 103252   824 pts/2    S+   15:32   0:00 grep redis
[root@vm7 ~]# 
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xrwwuming/article/details/51548221
文章标签: redis redis安装
个人分类: Redis
想对作者说点什么? 我来说一句

redis用法介绍+python下调用redis

2017年12月05日 5KB 下载

Redis安装与使用

2018年05月02日 215KB 下载

没有更多推荐了,返回首页

不良信息举报

Redis系列(1)---Redis的介绍和安装

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭