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

原创 2016年05月31日 18:58:32

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 ~]# 
版权声明:本文为博主原创文章,未经博主允许不得转载。

redis的安装与配置

解压redis包,make isntall进行安装,但是报错,找了半天,找到一个方法,在安装的时候加入参数 make MALLOC=libc 就解决了。 当然还有其他帖子的步骤: ...
  • fishermanmax
  • fishermanmax
  • 2016年08月04日 22:17
  • 760

分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装以及操作redis问题整理

redis简介redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据。当前主流的分布式缓存技术有redis,memcached,ssdb...
  • javaloveiphone
  • javaloveiphone
  • 2016年08月24日 17:40
  • 2076

【Redis】——Redis简单介绍及Redis安装详细过程

Redis是用C语言开发的一款高性能key-value数据库。它可以提供多种键值数据类型来适应不同场景下的存储需求。  Redis的适用场景有很多:缓存、任务队列(秒杀、抢购)、网站访问统计等,最常见...
  • huyuyang6688
  • huyuyang6688
  • 2016年07月08日 16:31
  • 3435

redis3.0深入详解(1)

从源码层面介绍redis3.0相对于2.8的改进
  • chosen0ne
  • chosen0ne
  • 2015年04月10日 17:24
  • 9021

Linux 下安装 Redis 服务器

本文简单介绍了 Linux 下安装 Redis 服务器的步骤,同时简要介绍服务器的配置、启动以及状态检测。另外还介绍了 32 位 CentOS 下安装 Redis 时遇到的一些问题的解决。...
  • defonds
  • defonds
  • 2014年06月11日 13:25
  • 9044

Linux 下编译 redis 报错解决办法

make 的时候出现以下错误: zmalloc.o: In function `zmalloc_used_memory': /data/redis-2.6.9/src/zmalloc.c:22...
  • yangli91628
  • yangli91628
  • 2015年12月24日 12:34
  • 1834

redis-2.8.12安装部署

操作系统:redhat6.5 64位 安装用户:root 软件环境:安装有make和gcc 配置文件路径:/etc/redis.conf 安装步骤: 1.下载安装包red...
  • u014756434
  • u014756434
  • 2015年02月28日 09:48
  • 867

Redis客户端管理工具的安装及使用

Redis客户端管理工具的安装及使用
  • marko39
  • marko39
  • 2017年06月23日 12:26
  • 1089

Redis介绍以及安装(Linux)

Redis介绍以及安装(Linux)       redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcached类似,但很大程度补偿了memcached的...
  • lang_man_xing
  • lang_man_xing
  • 2014年07月28日 13:05
  • 1545

Redis数据库安装部署

redis部署
  • allesa
  • allesa
  • 2016年04月21日 18:53
  • 6623
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Redis系列(1)---Redis的介绍和安装
举报原因:
原因补充:

(最多只允许输入30个字)