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…

SAP里删除trace文件的方法

1. stat.DAT&#xff1a;性能统计文件。 这个统计文件增长很快&#xff0c;不小心就涨到900MB以上。 对应的OS路径: D:\usr\sap\DEV\DVEBMGS00\data 处理方法: ST03N -> Expert mode -> Collector and Perfromance DB ->Statistics Records & File -> D…

HID设备类详解

HID设备类 Base Class 03h (HID – Human Interface Device) This base class is defined for devices that conform to the HID Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values. V…

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

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

Linux使用笔记: 设置Samba服务器中新建文件/目录的权限

From: http://easwy.com/blog/archives/set-file-directory-attribute-for-linux-samba/ 通过Samba服务器实现windows和Linux之间的文件共享&#xff0c;相信是绝大多数人的选择。通常我们都会使用Samba的缺省配置&#xff0c;这样&#xff0c;每次通过Samba从Windows向Linux中…

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

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

单线程写多线程读安全的结构体

大型网络游戏服务器的逻辑大多采用单线程设计&#xff0c;典型的就是一个线程处理一个区域(地图),跨区域通过跳转实现&#xff0c;这样&#xff0c;不同区域的对象在逻辑上是不发生交互的。 这样在一台服务器上开启N个线程就可以处理N个区域。但一个线程处理一个区域毕竟有其瓶…

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 "…

时间戳转日期;日期转时间戳;

一、 拓展:如何用js将日期转换成时间戳 new Date(2022-06-01).getTime() //1654041600000 //这个safari无法将时分秒转时间戳// 推荐用这个&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&…

swoole之代码热更新实现

From: http://www.th7.cn/Program/php/201405/211057.shtml 持续的思考: 本人参与的swoole项目有幸被很多朋友使用&#xff0c;我也大力向周边的一些朋友推荐&#xff0c;随着swoole的版本迭代更新&#xff0c;已经足够稳定了&#xff0c;在阿里&#xff0c;腾讯&#xff0c;yy…

题目1168:字符串的查找删除

题目1168&#xff1a;字符串的查找删除 时间限制&#xff1a;1 秒 内存限制&#xff1a;32 兆 特殊判题&#xff1a;否 提交&#xff1a;5092 解决&#xff1a;2097 题目描述&#xff1a;给定一个短字符串&#xff08;不含空格&#xff09;&#xff0c;再给定若干字符串&#x…

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

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

js实现复制并能保留原格式粘贴;vue中点击复制粘贴功能;vue复制功能(不需要插件);

使用场景&#xff1a;vue项目中遇到点击按钮&#xff0c;复制文本的功能。复制成功后可以黏贴。 <div click"copyDesc">复制</div>methods:{copyDesc () {let url 这是复制的内容&#xff0c;可以是data的变量值或传递的参数等换行文字1换行文字2 let…

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;一般…

在网上接外包

在网上接外包。这个需要一些沟通能力和英文能力 以下是一些可以接到外包的网站&#xff1a; 国内&#xff1a; http://www.taskcity.com/很难接到外包&#xff0c;今年在该网站只完成两个项目。 http://www.sxsoft.com/情况同上&#xff0c;一个小项目。 国外&#xff1a; http…

ocLazyLoad angular 按需加载

ionic 框架 1.引用 index.html 加载 <script type"text/javascript" src"lib/oclazyload/ocLazyLoad.min.js"></script> 2.注入 angular.module(starter, [ionic, oc.lazyLoad]) 3.配置 .state(app.myinfo, {url: /user/myinfo,views: {menuCo…

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

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

调用 usb_control_msg 返回错误值 -32, Broken pipe, 对 hidraw write时 返回错误值 -32, Broken pipe

-------------------Step 1--------------------- 如题&#xff0c;使用 libusb 对 hid 类设备进行控制传输的时候&#xff0c;有时会遇到此错误&#xff0c;但是实际上传输是成功的&#xff0c;用usb分析仪等工具和程序中验证&#xff0c;比如发送数据成功后&#xff0c;让设…

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

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