Redis

Posted xiafengyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis相关的知识,希望对你有一定的参考价值。

Redis简介

  Redis是一个开源免费的高性能键值数据库,通常被用作数据库、缓存、消息代理。

  它支持数据结构,如strings,hashes,lists,sets,sorted。

在Linux下使用Redis

  1、安装Redis

    进入http://redis.io/download下载Redis,解压,执行make对Redis解压后的文件进行编译,进入src执行make install进行Redis的安装

  2、启动Redis

    进入src目录下,使用 ./redis-server & 命令启动Redis

    使用 ps - ef |grep redis 查看redis进程是否存在

  3.关闭Redis

    redis-cli shutdown/kill -9 端口号

  4.退出Redis

    ctrl+c

Redis的数据类型

  Key   

    在Redis里,除了" "和空格不能做为名字的组成内容外,其他内容都可以作为Key的名字部分。名字长度不做要求。

    不同redis数据库切换:
      select 数据库
    创建一个字段:
      set id 1
    输出一个字段的内容:
      get id
    删除一个字段:
      del id
    查看所有字段:
      keys *
    设置一个字段的生命周期:
      expire color 时间
    将一个字段从此数据库移动到另一个指定的数据库:
      move name 数据库
    删除当前数据库中所有的key
      flushdb
    删除所有数据库中的所有key
      flushall

  String   

    String是Redis的基本类型
    Redis的String可以包含任何数据。包括jpg图片或者序列化的对象。
    单个Value值最大上限是1G字节。
    如果只使用String类型,Redis就可以被看作加上持久化特性的memcache

    设置key对应的值为String类型的Value:
      set key value
    一次设置多个key
      mset key1 value1 key2 value2
    一个获取多个key的value
      mget key1 key2

  List

    设置一个list链表key newlogin,内部有5个元素

      lpush newlong tom

      lpush new long tom1

      lpush new long tom2

      lpush new long tom3

      lpush new long tom4

    删除链表尾部的元素:

      rpop list

    通过范围查找链表内的元素信息:

      lrange list 0 100

    查看链表的长度

      llen list

    截取链表

      ltrim list 1,3

  还有一些其他的数据类型的操作,请参照官网api : redis.cn,redis.io

Redis配置文件介绍——Redis.conf

  配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit
  对大小写不敏感

  技术图片

  默认为no。改为yes : 可以在后台运行

  技术图片 

   设置TCP的backlog,backlog其实是一个连接队列。
   backlog队列总和=未完成三次握手队列+已经完成三次握手队列。
   在高并发环境下你需要一个高backlog值来避免慢客户端连接问题。注意Liunx内核会将这个值减小到/proc/sys/core/somaxconn的值,所以需要确认增大somaxconn和tcp_max_syn_backlog两个值,来达到想要效果。

    tcp三次握手:

      第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

      第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;     

      第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
      完成三次握手,客户端与服务器开始传送数据。

    技术图片

    如果配置成no,表示你不在乎数据不一致或者有其他的手段发现和控制。

    技术图片

    rdbcompression:对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,Redis会采用LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话。可设置关闭此功能。

    技术图片

    rdbchecksum:在存储快照后,还可以让Redis使用CRC64算法来进行数据校验,但是这样会增加大约10%的性能消耗,如果希望获取到最大性能的提升,可关闭此功能。

    技术图片

    RDB

      save秒数,写操作次数

      RDB是整个内存的压缩过的Snapshot,RDB的数据结构,可以配置复合的快照触发条件。

      默认:

        1分钟内改了1万次;
        或5分钟改了10次;
        或15分钟改了1次;

      优势:

        适合大规模的数据恢复

        对数据的完整性和一致性要求不高

      劣势:

        在一定间隔时间做一次备份,所以如果Redis意外down掉的话,就会丢失掉最后一次快照后的所有修改。

      如何停止:

        动态停止RDB保存规则的方法:redis -cli config set save ""

  AOF

    以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。

  技术图片

  默认为no,改为yes 开启AOF 

  需要注意的是:即使已经在redis.conf文件中把appendonly 从no改为了yes,把服务器重启了的情况也没有appendonly.aof文件时,必须要执行
  ./redis-cli config set appendonly yes
  redis-cli config set save “”
  这两个命令后才会在安装目录下出现appendonly.aof文件

   



































以上是关于Redis的主要内容,如果未能解决你的问题,请参考以下文章

RedisRedis 安装启动使用流程

RedisRedis 安装启动使用流程

redisredis知识点总结

redisredis知识点总结

RedisRedis高级

RedisRedis简述