Redis安装和使用指南

From: http://mwt198668.blog.163.com/blog/static/48803692201132141755962/

Redis安装指南

作者:Red_Ant

时间:2011-04-20

简  介

     redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步Redis一个分布式缓存

Redis官方主页:http://www.redis.io/

百 度     百 科:http://baike.baidu.com/view/4595959.htm#sub4595959

Redis中文简介:http://yuanmuqiuyu2000.blog.sohu.com/162703316.html

 

安装环境:

版本:Redis-2.2.4

操作系统:CentOS 5.5 X64

账户:root

一、安装准备

1.请先确认系统安装了gcc

gcc –v   正常情况可以看到版本号

如果得到gcc:command not found 代表gcc没有安装,或者安装有问题

2.解决:可以参考如下进行GCC的安装(不同系统请各自参考gcc安装方法)

放入系统安装光盘,进入cd /media/CentOS_5.5_Final/CentOS/中,按顺序安装如下程序

rpm -ivh cpp-4.1.2-48.el5.x86_64.rpm

rpm -ivh kernel-headers-2.6.18-194.el5.x86_64.rpm

rpm -ivh glibc-headers-2.5-49.x86_64.rpm

rpm -ivh glibc-devel-2.5-49.x86_64.rpm

rpm -ivh libgomp-4.4.0-6.el5.x86_64.rpm

rpm -ivh gcc-4.1.2-48.el5.x86_64.rpm

 

二、开始安装Redis

首先解压redis-2.2.4.tar.gz到Linux的指定目录中,这里举例我们使用的目录为/usr/local/redis(自行建立该redis目录)将解压后的文件放入该目录

Redis安装和使用指南 - mwt198668 - 怀念那穿树叶年代!!

1.进入该目录

cd /usr/local/redis/redis-2.2.4

2.执行

$ make

注:此过程可能会遇到./mkreleasehdr.sh权限不够,那么请先将执行

$ cd /usr/local/redis/redis-2.2.4/usr/src

$ chmod 777 mkreleasehdr.sh

如没有错误,安装结束后能看到

Redis安装和使用指南 - mwt198668 - 怀念那穿树叶年代!!

3.到此我们的Redis就安装完成了

      我们通过执行./src/redis-server开启redis服务,然后输入如下命令可以测试Redis是否正常工作:

      $ cd src

      $ ./redis-cli

            redis> ping                  测试服务是否开启

            PONG                           服务开启时可以看到PONG的回应

            redis> set foo bar        将key=foo,value=bar放入redis中

            OK                               成功返回OK

            Redis> get foo             获得key=foo的value

            "bar"                            成功返回”bar”


至此Redis安装一切正常o(^_^)o


Redis使用入门

一、Redis启动和关闭

为了方便管理可以在/usr/local/redis目录中添加3个文件夹

      $ mkdir /usr/local/redis/bin

      $ mkdir /usr/local/redis/etc

      $ mkdir /usr/local/redis/var

       $ cp redis-server redis-cli redis-benchmark redis-stat /usr/local/redis/bin/

       $ cp redis.conf /usr/local/redis/etc/

 

因为改变了redis.conf文件的位置,所以启动方法如下

      $ mkdir /usr/local/redis/bin

      $ ./redis-server ../etc/redis.conf

 

启动后可通过ps –ef|preg redis来查看Rredis是否启动成功

关闭Redis通过

      $ ./redis-cli     启动客户端程序

      $->shutdown   关闭当前Redis

      $->exit         退出客户端程序

 

二、配置参数

  在我们成功安装Redis后,我们直接执行redis-server即可运行Redis,此时它是按照默认配置来运行的(默认配置甚至不是后台运行)。我们希望Redis按我们的要求运行,则我们需要修改配置文件,Redis的配置文件就是我们上面第二个cp操作的redis.conf文件,目前它被我们拷贝到了/usr/local/redis/etc/目录下。修改它就可以配置我们的server了。如何修改?下面是redis.conf的主要配置参数的意义:

  daemonize:是否以后台daemon方式运行

  pidfile:pid文件位置

  port:监听的端口号

  timeout:请求超时时间

  loglevel:log信息级别

  logfile:log文件位置

  databases:开启数据库的数量

  save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。

  rdbcompression:是否使用压缩

  dbfilename:数据快照文件名(只是文件名,不包括目录)

  dir:数据快照的保存目录(这个是目录)

  appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。

  appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)

  下面是一个略做修改后的配置文件内容:

  daemonize yes

  pidfile /usr/local/redis/var/redis.pid

  port 6379

  timeout 300

  loglevel debug

  logfile /usr/local/redis/var/redis.log

  databases 16

  save 900 1

  save 300 10

  save 60 10000

  rdbcompression yes

  dbfilename dump.rdb

  dir /usr/local/redis/var/

  appendonly no

  appendfsync always

  glueoutputbuf yes

  shareobjects no

  shareobjectspoolsize 1024

  将上面内容写为redis.conf并保存到/usr/local/redis/etc/目录下

  然后在命令行执行:

  /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

  即可在后台启动redis服务,这时你通过

  telnet 127.0.0.1 6379

  即可连接到你的redis服务

三、客户端程序

      因为本人业务需要,这里只列举Java客户端,其他语言客户端请参考官方文档(http://www.redis.io/clients),现有Java客户端有4种:

    Redis安装和使用指南 - mwt198668 - 怀念那穿树叶年代!!

其中Jedis是官方主推的Java客户端,架构思路清晰,小巧下面是用Jedis客户端访问Redis

版本:jedis-1.5.2.jar

代码示例:

    String host = "192.168.169.132";

    // host提供Redis服务的主机IP,Redis提供默认端口6379

    Jedis jedis = new Jedis(host);

    jedis.ping();// return PONG,测试主机服务是否正常启动

    jedis.set("hello", "world"); // return OK

    jedis.get("hello"); // return "world"

    jedis.shutdown(); // 关闭该Redis

 

根据现在有环境进行的测试结果(仅供参考):

      单客户端,单线程向Redis服务器中添加10,0000key用时20秒左右

      单客户端,10线程向Redis服务器中添加10,0000key用时6秒左右

四、同步机制

      Redis到目前使用的版本为止只支持master-slave(主-从)同步,不支持master-master  (主-主)同步。

      1.设置同步:

      在Slave机器的redis.conf配置文件中修改

            # slaveof <masterip> <masterport>               

            例如:slaveof 192.168.169.132 6379

            <masterip>主机IP

            <masterport>主机端口

 

      2.多个从机,可以让多个从机指向一个相同的主机。

      3.串联同步,可以让一个从机指向一个主机,让另一个从机指向刚才的从机,从而实现串联;          从机只同步其主机的数据。

注:切忌不可以让主机和从机相互指向对方,否则将无法同步。

 

   录

一、常用命令格式

启动Redis服务:

1.默认启动:读取src下的redis.conf配置文件启动redis

      $ ./redis-server

2.指定配置文件启动:

      $ ./redis-server ../etc/redis.conf  (使用指定位置的配置文件来启动Redis)

 

启动Redis客户端:

1.启动默认客户端,连接到默认src下的redis.conf配置文件中地址的Redis

      $ ./redis-cli

2.连接到指定地址的Redis

      $ ./redis-cli –h 192.168.169.132

3. 连接到指定地址和端口的Redis

      $ ./redis-cli –h 192.168.169.132 –p 6380


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/403187.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

员工打卡课后小项目

public class Fm{//员工类public string Id { get; set; }public string Name { get; set; }public int Age { get; set; }public string Gender { get; set; }} public class SI{//打卡类public string Name { get; set; }public DateTime Begin { get; set; }public DateTime…

通过后端接口,预览文件流图片;预览和下载文件流

后端接口返回的是文件流 1.如果是pdf等文件&#xff0c;通过iframe结合文件流&#xff0c;做到文件的下载和预览 // 预览文件openPdf1 () {// 后端下载文件流的地址接口let url G_CGI_PHP.group.documentDownload ?id this.paymentImage1const newWindow window.open()ne…

DatePicker动态设置picker-options 中的disabledDate属性操作;

一、场景&#xff1a; 有两个时间选择器A和B。A的时间任意选&#xff0c;B的时间必须选择A之后的时间。此时就需要给B设置可选时间区间&#xff0c;而且是动态的值&#xff0c;既动态设置picker-options 中的disabledDate。 二、代码片段 html&#xff1a; <el-col :span&…

[转]序列化悍将Protobuf-Net,入门动手实录

最近在研究web api 2&#xff0c;看了一篇文章&#xff0c;讲解如何提升性能的&#xff0c; 在序列化速度的跑分中&#xff0c;Protobuf一骑绝尘&#xff0c;序列化速度快&#xff0c;性能强&#xff0c;体积小&#xff0c;所以打算了解下这个利器 1&#xff1a;安装篇 谷歌官方…

Linux 内核打印级别

printk的打印级别 #define KERN_EMERG "<0>" /* system is unusable */ #define KERN_ALERT "<1>" /* action must be taken immediately */ #define KERN_CRIT "<2>" /* critical conditions */ #define KERN_ERR "…

C# 文件操作详解(三)---------Directory类

前面两篇介绍了File类和FileInfo类&#xff0c;对于文件的操作基本够用&#xff0c;但是后面还会补充一下FileStream相关的操作&#xff0c;例如StreamReader和StreamWriter的内容。本文主要介绍Directory类的使用&#xff0c;让我们一起看一下Directory类为我们提供了哪些操作…

Libusb开发教程一 安装

1. 从官网下载需要使用的离线资源包&#xff1a; 进入 libusb.info 的 Download 页 下载 libusb-1.0.9.tar.bz2 下载 libusb-compat-0.1.4.tar.bz2 2. 实验平台 OS: Ubuntu16.04 Kernel: 4.4.0 3. 安装过程 <1> 拷贝步骤一中的离线包到 Linux 系统目录&#xff0c;一般…

WIN10解包分区和磁盘分区教程

From: https://thinkpad.bbs.taobao.com/detail.html?postId5390151 新机到手第一件事情就是要系统解包和磁盘分区。建议在安装和卸载软件之前&#xff0c;进行磁盘分区&#xff0c;不然有可能只能分出原空间的50%&#xff0c;想要分更多空间&#xff0c;只能还原系统了。 一、…

element自定义图标;element自定义icon;element-ui自定义tab栏图标;

一、场景&#xff1a;element-ui本身提供了图标&#xff0c;但是不全面或者开发时候需要使用自定义图标展示。此时可以用到elemenUi的自定义图标。参考链接 二、html使用&#xff0c;和正常的element的 图标 i 标签使用一样&#xff0c;使用设置的类名class即可&#xff1a; &…

canvas文字居中;canvas画布文字右对齐;canvas画布文字左对齐;canvas文字自动换行;canvas设置行间距;

canvas参考手册 场景&#xff1a;画布绘制文本&#xff0c;使用 context.fillText(text,x,y,maxWidth)。文本对其也就是设置xy坐标问题。 以下的画布设定宽度假设都是width&#xff1a;500 一、canvas文本左对齐&#xff1a; 就是x轴设置为0即可。 var cdocument.getElementBy…

与朱元思书

风烟俱净&#xff0c;天山共色。从流飘荡&#xff0c;任意东西。自富阳至桐庐一百许里&#xff0c;奇山异水&#xff0c;天下独绝。 水皆缥碧&#xff0c;千丈见底。游鱼细石&#xff0c;直视无碍。急湍甚箭&#xff0c;猛浪若奔。 夹岸高山&#xff0c;皆生寒树&#xff0c;负…

el-cascader回显失败;el-cascader回显不出来

—我的是省市联动&#xff0c;选择时候是正常的&#xff0c;得到的绑定值是数组 [‘安徽’,‘黄山’]&#xff0c;没问题&#xff1b; 但是在详情查看时候&#xff0c;回显成[‘安徽’,‘黄山’]&#xff0c;下拉框却不显示回显值。 —原因&#xff1a;虽然data里初始化声明变量…

No grammar constraints (DTD or XML schema).....两种解决方法

From: http://www.cnblogs.com/yqskj/archive/2013/01/11/2857065.html 方法一&#xff1a;常用方法 关闭XML验证 工具栏&#xff1a;windows > preferences > xml > xml files > validation > Indicate when no grammar is specified:选择Ignore即可。 方法二…

数字金额加逗号;js给数字加三位一逗号间隔的两种方法;js数据格式化

需求&#xff1a;数字金额&#xff0c;按照三位一个逗号显示。既 千 百万 十亿 或者是按照固定的几位一个逗号展示。 方法1&#xff1a; <script type "text/javascript">//保留三位小数&#xff0c;toLocaleString() 方法可把一个 Number 对象转换为本地格…

项目管理软件伙伴https://www.huobanyun.cn/

现在项目管理软件市面上很多&#xff0c;但能够完全适合每家公司需求的比较难找&#xff0c;因为众口难调&#xff0c;每家公司都有自己的特殊情况&#xff0c;所以&#xff0c;建议考虑下有比较齐全的基础功能的标准化软件产品&#xff0c;同时又在项目管理开发能力上比较突出…

eclipse配置

eclipse 算是跨平台的开发工具了&#xff0c;而且使用的人群很多&#xff0c;虽然网上有很多答案&#xff0c;但我还是想整理下自己的答案&#xff0c;方便日后查询&#xff1a; 1. 编码设置 2. 解决No grammar constraints (DTD or XML schema) 3. [WARNING] Using platform …

el-form表单新增表单项动态校验;el-form校验动态表单v-if不生效;

场景&#xff1a;本文是两种表单校验 1.对于数组for循环&#xff0c;校验每一项 2.对于两个不同的字段&#xff0c;分别v-if显示隐藏的校验 一、新增和删除表单项&#xff0c;动态校验。 el-form表单动态动态新增表单进行校验。直接参考 动态增减表单项 以下代码可直接复制&…

MT7628如何控制GPIO

查看datasheet和确认GPIO复用引脚scheme 通过查看mt7628 datasheet可以明确复用关系&#xff1a; 在这里我以I2S对应的GPIO引脚为例。 查看 mt7628an.dtsi 文件中对gpio的注册 $(TOPDIR)假定为宿主机上 OpenWrt 的编译目录。 在$(TOPDIR)/target/linux/ramips/dts/mt7628an.d…

.Net Core集成Office Web Apps(一)

最近开始学习.Net Core&#xff0c;并使用Visual Studio Code工具来开发。感觉开发起来特别的方便&#xff0c;但是有个头疼的地方&#xff1a;许多的类库被修改了&#xff0c;一时半会儿还熟悉不了&#xff0c;需要查阅官方API。。。 Microsoft Office Web Apps&#xff08;以…

el-upload上传组件的动态添加;el-upload动态上传文件;el-upload区分文件是哪个组件上传的。

需求&#xff1a;正常我们上传都是一个固定的文件传到固定的后端字段里去。 但是有可能遇到&#xff0c;这种自定义新增多个上传组件&#xff0c;也就是遍历数组似的多个同样的上传组件 此时就遇到一个问题&#xff1a;因为是遍历出来的上传组件&#xff0c;导致上传成功:on-su…