1.安装

  下载安装后解压即可执行make命令完成编译,完整命令如下:

  wget http://download.redis.io/redis-stable.tar.gz
  tar xzf redis-stable.tar.gz
  cd redis-stable
  make

  编译完成后直接执行make install命令来将这些可执行程序复制到/usr/local/bin目录中以便以后执行程序可以不用输入完整的路径。

2.启动和停止

  最常用的两个程序是redis-server和redis-cli,其中redis-server是redis的服务器,启动redis即运行redis-server;而redis-cli是redis自带的redis命令行客户端。

  启动有直接启动和通过初始化脚本启动两种方式,分别适用于开发环境和生产环境。

直接启动

  直接运行redis-server即可启动redis。

  redis服务器默认会使用6379端口,通过--port参数可以自定义端口号:

  redis-server --port 6380

通过初始化脚本启动redis

  在linux系统中可以通过初始化脚本启动redis,使得redis能跟随系统自动启动,在生产环境中推荐使用此方法运行redis。在redis源码目录的utils文件夹中有一个名为redis_init_script的初始化脚本文件。

  我们需要配置redis的运行方式和持久化文件、日志文件的存储位置等,具体步骤如下:

(1)配置初始化脚本。首先将初始化脚本复制到/etc/init.d目录中,文件名为redis_端口号,其中端口号表示要让redis监听的端口号,客户端通过该端口号链接redis。然后修改脚本REDISPORT变量的值为同样的端口号。

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

  /etc/redis 存放redis的配置文件

  /var/redis/端口号 存放redis的持久化文件

(3)修改配置文件。首先将文件模板(在redis根目录中redis.conf)复制到/etc/redis目录中,以端口号命名(如6379.conf),然后按照以下样例对部分参数进行编辑。

  参数           值                 说明
  daemonize          yes              使redis以守护进程模式运行

pidfile          /var/run/redis_端口号.pid      设置redis的pid文件位置

  port            端口号            设置redis监听的端口号

dir          /var/redis/端口号          设置持久化文件存放位置

  现在就可以使用/etc/init.d/redis_端口号start来启动redis了,而后需要执行下面的命令使redis随系统自动启动:

  update-rc.d redis_端口号 defaults

停止redis

  考虑到redis有可能正在将内存中的数据同步到硬盘中,强行终止redis进程可能会导致数据丢失。正确停止redis的方式应该是向redis发送shutdown命令,方法为:

  redis-cli shutdown

  当redis收到shutdown命令,会先断开所有的客户端连接,然后根据配置执行持久化,最后完成退出。

  redis可以妥善处理sigterm信号,所以使用"kill redis进程的PID"也可以正常结束redis,效果同上。

3.redis命令行客户端

发送命令

  通过redis-cli向redis发送命令的方式有两种:

  第一种后面直接加参数,比如redis-cli第一种后面直接加参数,比如redis-cli shutdown。执行时会自动按照默认的配置(服务器地址为127.0.0.1,端口号为6379)链接redis,通过-h和-p参数可以自定义地址和端口号:

  redis-cli -h 127.0.0.1 -p 6379

  redis提供了ping命令来测试客户端与redis的链接是否正常,如果连接正常会收到PONG。

  第二种只输入redis-cli不添加任何参数会进入交互模式,可以执行任何命令。

命令返回值

命令返回有5种类型

(1)状态恢复

  比如向redis发送set命令设置某个键的值,会返回OK表示设置成功,另外发送PING返回PONG也是状态回复。

(2)错误回复

  当出现命令不存在或命令格式有错误等情况redis会返回错误回复,以(error)开头,后面跟错误信息。

(3)整数回复

  redis没有整数类型,但是提供了一些用于整数操作的命令,整数回复以(integer)开头,并在后面跟上整数数据。

(4)字符串回复

  当请求一个字符串类型键的键值或一个其他类型键中的某个元素时就会得到一个字符串回复,字符串回复以双引号包裹。

(5)多行字符串回复

  当请求一个非字符串类型键的元素列表时就会收到多行字符串回复,多行字符串回复中的每行字符串都是以一个序号开头。

4.配置

  由于redis配置选项比较多,通过启动参数设置这些选项不方便,所以redis支持通过配置文件来设置这些选项。启用配置文件的方法是启动时将配置文件的路径作为启动参数传递给redis-server,如:

  redis-server /path/to/redis.conf

  通过启动参数传递同名的配置选项会覆盖配置文件中相应的参数。

  除此之外redis可以在运行时通过"config set"命令在不重新启动redis的情况下动态修改部分redis配置(不是所有的配置都可以这样修改),如:

  redis>config set loglevel warning

  OK

  运行时也可以使用"config get"命令获得redis当前的配置情况,如:

  redis>config get loglevel

  1)"loglevel"

  2)"warning"

  第一行字符串回复表示的是选项名,第二行是选项值。

5.多数据库

  redis是一个字典结构的存储服务器,而实际上一个redis实例提供了多个用来存储数据的字典,客户端可以指定将数据存储的哪个字典中。这与我们熟知的在一个关系数据库实例中可以创建多个数据库类似,所以可以将其中的每个字典都理解成一个独立的数据库。

  每个数据库对外都是以一个从0开始的递增数字命名,redis默认支持16个数据库,可以通过配置参数database来修改这一数字。客户端与redis建立连接后会自动选择0号数据库,不过可以随时使用select命令更换数据库,如要选择1号数据库:

  redis>select 1

  OK

  然而这些以数字命名的数据库又与我们理解的数据库有所区别。首先redis不支持自定义数据库名字,每个数据库都是以编号命名,开发者必须自己记录哪些数据库存储了哪些数据。另外也不支持为每个数据库设置不同的访问密码,所以一个客户端要么可以访问全部数据库,要么连一个数据库也没有访问权限。最重要的是多个数据库之间并不是完全隔离的,比如flushall命令可以清空一个redis实例中所有数据库的数据。综上所述,这些数据库更像是一种命名空间,而不适宜存储不同应用程序的数据。比如可以使用0号数据库存储某个应用生产环境中的数据,使用1号数据库存储测试环境中的数据,但不适宜使用0号数据库存储A应用的数据,使用1号数据库存储B应用的数据,不同的应用数据使用不同的redis实例存储数据。由于redis非常轻量级,一个空的redis实例占用内存只有1MB左右,所以不用担心多个redis实例会额外占用很多内存。

6.访问远程redis

  这里先说配置文件中的两个配置中的参数:

  bind:这个参数值代表这个地址可以接收到请求。

  protect-mode:是否开启保护模式,参数值只有"yes"和"no"。

  默认情况下redis是只能被本机访问的,如果要被远程访问需要更改一点配置,在.conf配置文件中有一个"bind"的配置,默认是"bind 127.0.0.1",表示只能被本机访问,如果将这个配置注释掉则会允许所有访问,但是注释掉以后还是不能访问,因为redis默认是被保护起来的,所以找到配置文件中"protect-mode"的配置,默认是"yes",可以改为"no",这时候所有的远程服务器也都可以成功访问,但是这样是及其不安全的,生产环境不会这样做,所以protect-mode还是要改为yes,在bind这个参数后面加上允许接收请求的网卡ip地址即可。下面对bind做更详细的解释:

  假如现在有两个远程服务器ip分别是xxx.A和xxx.B,很多地方对于bind的解释或者翻译都是说只接收bind后面的ip的请求,所以容易配置成"bind xxx.A xxx.B",但是这样其实还是无法访问的。

  这里要说bind其实是网络接口也就是网卡,一台服务器可能有多个网卡,假如一个用来接收局域网请求的ip为"xxx.C"和接收外网请求的ip为"xxx.D",如果上面的"xxx.A""xxx.B"都在同一个局域网内,即需要使用"xxx.C"这块网卡接收请求,那么bind参数只需要配置上"bind xxx.C"两台服务器都可以成功访问redis。

  总结:bind绑定的ip不是请求来源的ip,而是你redis服务器本身接受请求的ip。

一、redis简单配置的更多相关文章

  1. redis简单配置

    由于前段时间使用Kestrel,同时要操作Memcached及时更新缓存,又要操作database,持久化数据. 貌似Redis既可以当Cache又可以当Queue!于是,今天开始研究Redis! 一 ...

  2. Redis简单配置和使用

    学到Redis中需要整理和配置的东西比较多,资源也是比较分散!这次的主要还是将知识整合一下,开发过程中所需要的资源整合一下,也方便今后涉及到这块地方的知识时,将时间大量浪费在了找这些资源上了! 一.R ...

  3. redis主从简单配置

    网上有好多复杂的配置,这里我用的是windows版的redis,简单配置了下,试验了下主从,能正常使用. 1.redis-master文件夹(里面是redis),redis-slave文件夹(里面是r ...

  4. dubbo 图片服务器(FastDFS) redis solr ActiveMQ等简单配置使用

    一.dubbo 项目基于soa的架构,表现层和服务层是不同的工程.所以要实现商品列表查询需要两个系统之间进行通信. 1.1如何实现远程通信? 1.Webservice:效率不高基于soap协议.项目中 ...

  5. 在linux安装redis单机和集群后,如何在windows上使用redis客户端或者java代码访问错误的原因很简单,就是没有连接上redis服务,由于redis采用的安全策略,默认会只准许本地访问。需要通过简单配置,完成允许外网访问。

    这几天在学习在linux上搭建服务器的工作,可谓历经艰辛.可喜最后收获也不少. 这次是在linux上搭建redis服务器后从windows上缺无法访问,连接不上. 仔细回忆以前搭建nginx和ftp的 ...

  6. Ubuntu14.04安装redis和简单配置

    1.前言 Redis是常用基于内存的Key-Value数据库,比Memcache更先进,支持多种数据结构,高效,快速.用Redis可以很轻松解决高并发的数据访问问题:做为时时监控信号处理也非常不错. ...

  7. Redis安装配置与Jedis访问数据库

    一.NOSQL概要 NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库.NoSQL数据库的四大分类 键值(Key-Value)存储数据库 这一类数据 ...

  8. Redis主从配置详细过程

    Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构.下面楼主简单的进行一下配置. 1.上面安装 ...

  9. redis主从复制配置(1)

    我们来配置一个一主两从的服务,根据前面写的已经配置好的redis基础上进行主从配置 一:进入redis的配置目录 cd /usr/local/redis 创建下面3个目录,命令为:make -p /u ...

随机推荐

  1. Linux下MySQL的数据文件存放位置

    http://bbs.csdn.net/topics/390620630mysql> show variables like '%dir%';+------------------------- ...

  2. 【转】IntelliJ IDEA中文乱码问题

    1.首先是编辑器的乱码,这个很好解决,file->settings->appearence里面有个Name设置成支持中文的字 体(这个很重要) 同样还要再settings中的Eidtor- ...

  3. SSM-Spring-19:Spring中JdbcTemplate

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- Spring自带一个ORM持久化框架JdbcTemplate,他可以说是jdbc的加强版,但是对最细微的控制肯 ...

  4. 手动撸个Android雷达图(蜘蛛网图)RadarView

    公司产品需要一个雷达图来展示各维度的比重,网上找了一波,学到不少,直接自己上手来撸一记 无图言虚空 简单分析一波,确定雷达图正几边形的--正五边形 int count=5,分为几个层数--4 层 in ...

  5. Circular view path [home]: would dispatch back to the current handler URL [/home] again. Check your ViewResolver setup!

    Circular view path [home]: would dispatch back to the current handler URL [/home] again. Check your ...

  6. 激活IDEA 2017.3 mac版 2018.05.21亲测可用

    本文激活方式不会导致IEDA打不开,可激活一年,最简便方式,只需要30秒. 1.修改hosts sudo vim /private/etc/hosts 在文件最后一行中添加: 0.0.0.0 acco ...

  7. 深浅拷贝,原生和JQuery方法实现

    7-17: 1:e.target.parentNode.remove();成功,查询一下JS原生的remove方法 2:复习JS DOM的原生操作方法,比如innerHTML(),insertBefo ...

  8. centos网络配置方法(手动设置,自动获取)

    不知道为什么最近一段时间网络特别的慢,还老是断,断的时候,局域网都连不上,当我手动设置一下ip后就可以了,搞得我很无语.下面是2种设置网络连接的方法,在说怎么设置前,一定要做好备份工作,特别是对于新手 ...

  9. Windows10 使用docker toolbox安装docker

    一.介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间 ...

  10. 用python对比两张图片的不同

    from PIL import Image from PIL import ImageChops def compare_images(path_one, path_two, diff_save_lo ...