MyException - 我的异常网
当前位置:我的异常网» 数据库 » Redis学习笔记(2)——Redis的准备

Redis学习笔记(2)——Redis的准备

www.MyException.Cn  网友分享于:2015-08-26  浏览:5次
Redis学习笔记(二)——Redis的准备

一、安装Redis

第一步肯定是安装了。安装前先说下版本规则,Redis约定次版本号(第一个小数点后的数字)为偶数是稳定版,为奇数是非稳定版,这里推荐使用稳定版学习、开发以及生产环境。

1、在POSIX系统中安装

Redis兼容大部分POSIX系统,Linux、OS X、BSD等,推荐使用源码编译安装。http://redis.io/download 在这里下载Stable版本。

在Linux系统中,下载后解压,这里我使用的是2.8.6版本,使用如下命令解压:

# tar xvzf redis-2.8.6.tar.gz

解压后进入文件夹,直接make命令即可完成安装。如果还想把Redis中需要用的一些可执行程序都放到/usr/local/bin目录下以便以后执行程序时可以不用输入完整路径,在执行make install命令即可。

Redis还推荐使用一个make test命令来测试Redis是否编译正确。

2、在Windows系统中安装

Redis官方不支持Windows。在此先建议不要使用Window做开发,更不要使用Windows系统做生产环境。

2011年微软为了让Redis能原生的运行在Windows上,微软在几周前成立了一个小组,通过几周的工作,通过采用LibUV将Redis成功移植到Win系统下。并且在Redis的github项目上,微软向Redis项目提交了他们的补丁。很有意思的,Redis的作者立刻拒绝了将这一补丁加入主干代码中。但称这个补丁还是很有用,能够让在Win下使用Redis进行开发的同学在调试方面更方便,以前可能需要在虚拟机下去启一个Redis。

如果实在没有办法,需要使用Windows的话,可以通过Cygwin软件或虚拟机完成学习。这里就不介绍这个软件的安装方法了,网上很多。(此软件并不能完全模拟Linux系统使用Redis,有写明了并不支持,所以还是推荐使用Linux系统学习)

 

本文原创与本人个人博客http://irfen.me

二、启动与停止Redis

如果没有执行make install命令的话,默认这些可执行程序是在Redis目录的src文件夹下,推荐还是执行一下make install。

文件名 说 明
redis-server Redis服务器
redis-cli Redis命令行客户端
redis-benchmark Redis性能测试工具
redis-check-aof AOF文件修复工具
redis-check-dump RDB文件检查工具

我们最常用的是前面两个。

1、启动

两种方式,直接启动和初始化脚本启动两种,前者适用于开发环境,后者用于生产环境。

①直接启动,运行redis-server即可,Redis默认监听6279端口,通过–port参数可以自定义端口号。

②初始化脚本启动:为了使Redis能够自动启动,在生产环境中要用此法运行。在Redis源码目录utils文件夹下有个redis_init_script的初始化脚本文件,我们需要配置Redis的运行方式和持久化文件、日志文件的存储位置等。

内容如下:

#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
 
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
 
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${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
        ;;
    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 as first argument"
        ;;
esac

步骤如下:

(1)讲配置文件复制到/etc/init.d下,名为redis_端口号,客户端通过次端口偶连接Redis,并需要修改脚本中REDISPORT变量值为上面的端口号。

(2)建立需要的文件夹。

/etc/redis             ===> 存放Redis配置文件

/var/redis/端口号 ===> 存放Redis持久化文件

(3)配置文件修改

此处的配置文件是在redis目录下的一个redis.conf的文件,需要复制到/etc/redis目录下,并改名为端口号.conf,然后做如下修改。

参 数 值 说明
daemonize yes 使Redis以守护进程模式运行
pidfile /var/run/redis_端口号.pid 设置Redis的PID文件位置
port 端口号 设置Redis监听的端口号
dir /var/redis/端口号 设置持久化文件存放位置

现在就可以使用/etc/init.d/redis_端口号 start来启动redis了。然后执行如下命令是redis随系统启动。

#sudo update-rc.d redis_端口号 defaults

2、停止

考虑到Redis有可能正在将内存中的数据写到磁盘上,强制终止Redis进程可能丢失数据。正确的方式如下:

#redis-cli SHUTDOWN

当redis收到命令后会现断开客户端,然后根据配置执行持久化后退出。

Redis可以妥善处理SIGTERM信号,所以使用kill命令也可以正常结束Redis,和SHUTDOWN命令一样。

 

本文原创与本人个人博客http://irfen.me

三、Redis客户端命令

之前也说过了执行的一个redis-cli命令,下面说些其他的命令。

#redis-cli -h 127.0.0.1 -p 6379

上述命令应该很好看懂,-h参数指定host,-p命令指定端口,默认如果不输入任何参数的话就是连接的本机本地服务。

#redis-cli PING

上述命令是redis提供的一个测试客户端与Redis连接是否正常的测试,如果正常,会返回PONG。

四、多数据库

Redis默认支持16个数据库,可以通过配置参数database修改。Redis和我们常用的数据库不一样,他的数据库命名是通过0~15的数字(例如默认的16个数据库)命名的,客户端连接后会默认选择第0个数据库,如果需要切换可以使用select命令切换。

redis 127.0.0.1:6379>select 1
OK
redis [1] 127.0.0.1:6379>select 0
OK

首先Redis不支持自定义数据库名,去粗Redis也不支持每个数据库一个帐号密码,只要能访问数据库0,就能访问其他的每个数据库。并且每个数据库并不是完全隔离的,比如flushall命令,可以清空整个Redis实例中的所有数据。所以这种数据库更像是个命名空间,不适合存储不同程序。

其实,我们完全可以把不同程序使用不同的Redis实例,一个空的Redis实例占用的内存只有1M左右,所以不用担心多个Redis实例会占用很多内存。

到此准备环境就整理完成了,下面就开始学习具体命令了。

 

本文原创与本人个人博客http://irfen.me

文章评论

程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
总结2014中国互联网十大段子
总结2014中国互联网十大段子
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
10个调试和排错的小建议
10个调试和排错的小建议
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
那些争议最大的编程观点
那些争议最大的编程观点
我的丈夫是个程序员
我的丈夫是个程序员
旅行,写作,编程
旅行,写作,编程
鲜为人知的编程真相
鲜为人知的编程真相
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
漫画:程序员的工作
漫画:程序员的工作
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
程序员的鄙视链
程序员的鄙视链
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
每天工作4小时的程序员
每天工作4小时的程序员
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
 程序员的样子
程序员的样子
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
程序员必看的十大电影
程序员必看的十大电影
一个程序员的时间管理
一个程序员的时间管理
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
Java程序员必看电影
Java程序员必看电影
如何成为一名黑客
如何成为一名黑客
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
编程语言是女人
编程语言是女人
中美印日四国程序员比较
中美印日四国程序员比较
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
为什么程序员都是夜猫子
为什么程序员都是夜猫子
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
代码女神横空出世
代码女神横空出世
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
程序员和编码员之间的区别
程序员和编码员之间的区别
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有