• Linux下安装redis


    redis是什么:
    Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.(官网介绍说明)
    redis是开源,BSD许可,高级的key-value存储系统. 
    可以用来存储字符串,哈希结构,链表,集合,因此,常用来提供数据结构服务.

    基本知识

    1、Redis的数据类型:

      字符串、列表(lists)、集合(sets)、有序集合(sorts sets)、哈希表(hashs)

    2、Redis和memcache相比的独特之处:

      (1)redis可以用来做存储(storge)、而memcache是来做缓存(cache)。这个特点主要是因为其有“持久化”功能

      (2)存储的数据有“结构”,对于memcache来说,存储的数据,只有一种类型——“字符串”,而redis则可以存储字符串、链表、集合、有序集合、哈序结构

    3、持久化的两种方式:

      Redis将数据存储于内存中,或被配置为使用虚拟内存。

      实现数据持久化的两种方式:(1)使用截图的方式,将内存中的数据不断写入磁盘(性能高,但可能会引起一定程度的数据丢失)

                   (2)使用类似mysql的方式,记录每次更新的日志

    4、Redis的主从同步:对提高读取性能非常有益

    5、Redis服务端的默认端口是6379

    ----------------------------------------------------------------------------------------------------------------

    接下来我们来安装Redis

    1、先到Redis官网(redis.io)下载最新版或者最新stable版

    2、将其下载到我的/lamp目录下(此处/lamp是源码存放目录,可任意指定,如:/usr/local/src)

    3、解压并进入其目录

      

    4、编译源程序

      a.     make        

        【make前注意几个问题  1. 直接make而不用不用configure---原因:源码是官方configure过的;2.如果是32位机器 用 make 32bit 命令;3. 官方configure时,生成的文件有时间戳信息,Make只能发生在configure之后,如果你的虚拟机的时间不对,比如说是2012年,解决: date -s ‘yyyy-mm-dd hh:mm:ss’   重写时间,再 clock -w】

      b.    可选步骤: make test  测试编译情况
        (可能出现: need tcl  >8.4这种情况, yum install tcl)

         c.    cd src

         d.    make install PREFIX=/usr/local/redis

    5、将配置文件(源码根目录下)移动到redis安装目录/usr/local/redis/etc下(若etc目录不存在的话,提前创建此目录)

      

    6、启动redis服务:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

      

    7、默认情况,Redis不是在后台运行,我们需要把redis放在后台运行

      vim /usr/local/redis/etc/redis.conf

      将daemonize的值改为yes

      

    8、客户端连接(redis-cli 后没有加参数的话 默认连接到本地)

      /usr/local/redis/bin/redis-cli 

      

    9、停止redis实例

      /usr/local/redis/bin/redis-cli shutdown

      或者

      pkill redis-server

    10、让redis开机自启

      vim /etc/rc.local

      加入

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

    -------------------------------------到此步,redis的安装及启动已完成-------------------------------

    注意:关于redis的配置引起的问题:

    1. 其他电脑上去访问redis时,访问失败,报错如下:

    解决方法:在确保防火墙打开6379端口的条件下,报此错,是因为redis配置中绑定了只允许本机访问,故将redis-conf中的bind 127.0.0.1注释掉,然后重启redis服务即可;

    2. 其他电脑上去访问redis时,访问失败,报错如下:

    解决方法:

    在redis配置文件redis.conf中注释掉bind配置项的同时把redis3.2新增的配置项protected-mode由yes改为no,改完后重启redis服务,其它机子就可访问redis服务

    ------------------------------------------------------------------------------------------------------

    11、接下来我们看看/usr/local/redis/bin目录下的几个文件时什么

      redis-benchmark:redis性能测试工具

      redis-check-aof:检查aof日志的工具

      redis-check-dump:检查rdb日志的工具

      redis-cli:连接用的客户端

      redis-server:redis服务进程

    ----------------------------------------------------------------------------------------------------------------------

    Redis的配置

      daemonize:如需要在后台运行,把该项的值改为yes

      pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址

      bind:指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项

      port:监听端口,默认为6379

      timeout:设置客户端连接时的超时时间,单位为秒

      loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice

      logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上

      database:设置数据库的个数,默认使用的数据库是0

      save:设置redis进行数据库镜像的频率

      rdbcompression:在进行镜像备份时,是否进行压缩

      dbfilename:镜像备份文件的文件名

      dir:数据库镜像备份的文件放置的路径

      slaveof:设置该数据库为其他数据库的从数据库

      masterauth:当主数据库连接需要密码验证时,在这里设定

      requirepass:设置客户端连接后进行任何其他指定前需要使用的密码

      maxclients:限制同时连接的客户端数量

      maxmemory:设置redis能够使用的最大内存

      appendonly:开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态

      appendfsync:设置appendonly.aof文件进行同步的频率

      vm_enabled:是否开启虚拟内存支持

      vm_swap_file:设置虚拟内存的交换文件的路径

      vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0

      vm_page_size:设置虚拟内存页的大小

      vm_pages:设置交换文件的总的page数量

      vm_max_thrrads:设置vm IO同时使用的线程数量

    -------------------------------------------------------------------------------------------------------------------------

    redis和memcached的区别(总结)

    1、Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过memcache还可用于缓存其他东西,例如图片、视频等等;

    2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储;

    3、虚拟内存--Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘;

    4、过期策略--memcache在set时就指定,例如set key1 0 0 8,即永不过期。Redis可以通过例如expire 设定,例如expire name 10;

    5、分布式--设定memcache集群,利用magent做一主多从;redis可以做一主多从。都可以一主一从;

    6、存储数据安全--memcache挂掉后,数据没了;redis可以定期保存到磁盘(持久化);

    7、灾难恢复--memcache挂掉后,数据不可恢复; redis数据丢失后可以通过aof恢复;

    8、Redis支持数据的备份,即master-slave模式的数据备份;

    9、应用场景不一样:Redis出来作为NoSQL数据库使用外,还能用做消息队列、数据堆栈和数据缓存等;Memcached适合于缓存SQL语句、数据集、用户临时性数据、延迟查询数据和session等。

  • 相关阅读:
    线程的两种实现方法
    wait() 与 sleep
    【BZOJ4566】找相同字符(后缀数组)
    【BZOJ2555】SubString(后缀自动机,Link-Cut Tree)
    【HDU4622】Reincarnation(后缀自动机)
    【SPOJ】Substrings(后缀自动机)
    【SPOJ】Longest Common Substring II (后缀自动机)
    【SPOJ】Longest Common Substring(后缀自动机)
    【Luogu3804】【模板】后缀自动机(后缀自动机)
    【SPOJ】Distinct Substrings(后缀自动机)
  • 原文地址:https://www.cnblogs.com/eaglezb/p/6437774.html
Copyright © 2020-2023  润新知