Redis入门及集群环境搭建

7 篇文章 0 订阅
7 篇文章 1 订阅

1.概述

笔者在两周前对redis也是一无所知,不知道这是个什么东东,有什么用。由于项目需求,需要尽快掌握redis 的使用,本文是笔者在学习过程中的笔记和总结。通过本文带领读者一步步揭开Redis的面纱,主要涉及了Redis概念、安装、集群和在应用程序中的使用。

2.认识Redis

Redis(REmote DIctionary Server)是什么,如果你认为它是一个key-value store, 那可能会用它来代替MySQL;如果认为它是一个可以持久化的cache, 可以用它保存一些频繁访问的临时数据。在Redis在官方网站的的副标题是A persistent key-value database with built-in net interface written in ANSI-C for Posix systems,这个定义偏向key-value store。还有一些看法则认为Redis是一个memory database,因为它的高性能都是基于内存操作的基础。另外一些人则认为Redis是一个data structure server,因为Redis支持复杂的数据特性,比如List, Set等。

与Redis类似的NoSQL产品有Memcache、Mongodb、ehcache等,下面和Memcache做下对比。Redis和Memcache它们都是内存数据库,不过后者还可以用来缓存图片、视频等等;它们都可以支持k/v类型的数据,前者还提供list,set,hash等数据结构的存储;从数据安全性考虑,前者支持数据持久化和数据备份,而后者在服务器宕机时,数据是无法恢复的。

3.安装使用

3.1平台环境

操作系统:Ubuntu11.04(Liunx内核:2.6.38-8-generic)

Redis版本:2.8.6(he latest stable version,笔者在撰写该篇文章时已经到2.8.7)

3.2安装步骤

1)创建工作目录。该目录用于存放redis相关的资源文件

在当前用户目录,下创建study->redis目录

$ mkdir -p study/redis

2)下载。首先进入redis的官网(redis.io[英文],CRUG网站[中文]),找到当前最新稳定版,可以通过浏览器下载或者通过终端wget进行下载,并保存到 ~/study/redis目录下。

 

$ cd study/redis

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

 

3)解压。我们下载的是redis的源代码压缩包,需要先解压。

$ tar xvzf redis-2.8.6.tar.gz

 

4)编译。

$ cd redis-2.8.6

$ make

 

.....

 

上面图片中白色框中的提示信息直接忽视。

到此redis的编译结束,编译后的可运行文件在src目录中,包含有:redis-server、redis-cli、redis-sentinel、redis-benchmark、redis-check-aof、redis-check-dump,其中redis-server是服务程序,redis-cli是测试客户端程序。

Tips:上面没有直接make&&make install的命令,主要考虑的是,redis的安装目录和文件由我们自己来定义,后面会将到安装的步骤。

3.3实例测试

下面启动redis服务

$ redis-server

从上图可以看出服务端已经在6379端口开启了监听。但是给出了一个警告信息,以及解决的方法。先退出redis服务,然后修改相关系统配置文件。

通过redis的客户端程序来关闭redis服务。

redis-cli -h 127.0.0.1 -p 6379

$ 127.0.0.1:6379> shutdown

 

-h 表示redis服务器地址,-p表示服务端口

指令“shutdown”表示停止redis服务。

下面是来自服务端控制台的信息

 

打开/etc/sysctl.conf文件,并在文件末位添加上vm.overcommit_memory = 1

 

注意,编辑该文件时需要管理员权限。

Tips:本文中使用了gedit文本编辑器(图形界面)来操作文件,大家也可以使用vi编辑器来编辑。

为了不重启电脑让该配置生效,我们在终端运行sysctl vm.overcommit_memory=1 即可,然后再启动redis服务,就没有了WARNING信息。

 

 

到此redis成功的启动了。

下面用redis-cli客户端程序来操作数据。

redis-cli -h 127.0.0.1 -p 6379

>set key1 测试哦

>get key1

>set key2 testvalue

>get key2

 

也可以使用windows telnet 进行连接。

通过上面的测试,说明Redis编译通过,已经可以使用,下面进行redis的环境安装。

3.4环境部署

通过上面的编译,只是完成了应用程序的生成,并没有形成一个规范的系统结构。接下来,我们将redis安装到应用环境中。

1)创建Redis环境目录/usr/local/webserver/redis

# mkdir -p /usr/local/webserver/redis/conf

# mkdir -p /usr/local/webserver/redis/run

# mkdir -p /usr/local/webserver/redis/db

上面三个目录分别用来存放配置文件,运行时文件和数据文件。

2)复制相应文件到对应目录

打开终端,切换到管理员身份,切换到用户文件夹/study/redis/redis/redis-2.8.6

# cp redis.conf /usr/local/webserver/redis/conf/

# cd src/

# cp redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server mkreleasehdr.sh redis-sentinel /usr/local/webserver/redis/

3)修改配置文件中的属性

# gedit /usr/local/webserver/redis/conf/redis.conf

==================================================================

##Redis默认不是以守护进程的方式运行,使用yes启用守护进程

daemonize yes

##当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件

pidfile /usr/local/webserver/redis/run/redis.pid

##指定本地数据库存放目录

dir /usr/local/webserver/redis/db

==================================================================

更多详细参数配置:

如流,新一代智能工作平台

4)创建服务启动、停止脚本

为了启动、停止服务的方便,下面我们创建对应的脚本。

在redis目录中创建start.sh

# gedit /usr/local/webserver/redis/start.sh

在打开的文件中输入如下内容,表示使用我们刚刚修改的配置文件来启动Redis服务。

==================================================================

#!/bin/bash

/usr/local/webserver/redis/redis-server /usr/local/webserver/redis/conf/redis.conf

==================================================================

按照上面的方法创建停止脚本。

# gedit /usr/local/webserver/redis/stop.sh

==================================================================

#!/bin/bash

kill `cat /usr/local/webserver/redis/run/redis.pid`

==================================================================

再改变这两个文件的权限,

chmod a+x /usr/local/webserver/redis/start.sh /usr/local/webserver/redis/stop.sh

然后在终端输入/usr/local/webserver/redis/start.sh启动redis服务。通过下面的命令来判断是否启动成功。

# netstat -ntlp| grep 6379

使用上面的stop.sh停止服务,是kill掉了进程,这样就会造成,内存中的数据(还没持久化到磁盘)的丢失。如果使用 shutdown指令停止,则在停止服务器会将内存中的数据都写入到磁盘中,下次启动时会读入该数据文件。

4. Master/Slave主从集群
4.1环境部署
4.2实例测试
4.3原理
5. Redis Sentinel管理工具
5.1 Redis HA方案
5.2环境部署
5.3启动与检测
5.4原理
6. Jedis与Java
6.1.获得jedis.jar包
6.2Redis的Java测试项目
7. 思考
8. 结束语

完整文档请下载:http://download.csdn.net/detail/ccboy2009/8423627

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IccBoY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值