zoukankan      html  css  js  c++  java
  • Redis简单介绍

    redis简单介绍


    Redis VS key-value缓存产品
    • Redis支持数据的持久化,能够将内存中的数据保持在磁盘中,重新启动的时候能够再次载入进行使用。
    • Redis不只支持简单的key-value类型的数据,同一时候还提供list,set,zset,hash等复杂的数据结构的存储,而且提供对他们的原子性操作,这是一个不同于其它数据库的进化路径。Redis的数据类型都是基于基本数据结构的同一时候对程序猿透明。无需进行额外的抽象。

    • Redis支持数据的备份。即master-slave模式的数据备份。
    • Redis执行在内存中可是能够持久化到磁盘,所以在对不同数据集进行快速读写时须要权衡内存。应为数据量不能大于硬件内存。在内存数据库方面的还有一个长处是。 相比在磁盘上同样的复杂的数据结构。在内存中操作起来非常easy,这样Redis能够做非常多内部复杂性非常强的事情。 同一时候,在磁盘格式方面他们是紧凑的以追加的方式产生的,由于他们并不须要进行随机訪问。
    Redis VS Memcached
    • 在性能上,Redis是单线程模型,而Memcached支持多线程,所以在多核server上后者的性能更高一些。可是,Redis的性能已经足够优异,在绝大部分场合下其性能都不会成为瓶颈。
    • 假设须要用到高级的数据类型或持久化等功能,Redis将会是Memcached非常好的替代品。

    Redis 优势
    • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。

    • 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
    • 原子 – Redis的全部操作都是原子性的。同一时候Redis还支持对几个操作全并后的原子性运行。
    • 丰富的特性 – Redis还支持 publish/subscribe, 通知, key过期等等特性。

    • Redis不支持自己定义数据库名字,每一个数据库以编号命名。开发人员必须自己记录哪些数据库存储了哪些数据。

    • Redis也不支持为每一个数据库设置不同的password,所以一个client要么能够訪问所有数据库,要么连一个数据库也没权限訪问。
    • Redis的多个数据库之间不是全然隔离的,如FLUSHALL命令能够清空一个Redis实例中所有数据库中的数据。

    锦囊

    • 在同一个Redis实例的不同数据库存储同样应用的数据
    • 不同应用的数据存放到不同的Redis实例中。

    Redis能够用作存储,队列,缓存系统
    • Redis作缓存系统

      • Redis能够对每一个键设置生存时间
      • 能够限定数据占用的最大内存空间,在数据达到空间限制后能够依照一定规则自己主动淘汰不须要的键。

        设置方法: 改动配置文件的maxmemory參数,限制Redis最大可用内存大小(单位是字节),当超出了这个限制时Redis会根据maxmemory-policy參数指定的策略来删除不须要的键直到Redis占用的内存小于指定内存.

    • Redis作队列
      • 列表类型键能够用来实现队列,并支持堵塞时读取。能够非常easy地实现一个高性能的优先级队列。
    停止Redis的方法
    • 通过向Redis发送SHUTDOWN命令,Redis会先断开全部client连接。然后依据配置运行持久化。最后完毕退出。

      $ redis-cli SHUTDOWN
    • Redis能够处理SIGTERM信号。使用kill redis_pid也能够正常结束Redis,效果与发送SHUTDOWN命令一样。

    Redis命令的5种返回值类型:
    1. 状态回复

      OK表示设置成功 PING的PONG也是状态回复

    2. 错误回复

      以(error)开头。如

      redis>err_command
      (error)ERR unknown command 'err_command'
    3. 整数回复

      以(integer)开头,并在后面跟上整数数据

    4. 字符串回复

      以双引號包裹。比如

      redis> GET foo
      "1"
      redis> GET noexists
      (nil)
    5. 多行字符串回复

      当请求一个非字符串类型键的元素列表时,就会收到多行字符串回复。

      多行字符串回复中的每行字符串都以一个序号开头,如:

      redis> KEYS *
      1) "bar"
      2) "foo"

    假设发现问题,欢迎轻拍留言交流。谢谢。


  • 相关阅读:
    MapReduce程序遇见java.net.UnknownHostException
    吐槽下《Hadoop权威指南(第二版)》的翻译
    HFileOutputFormat与TotalOrderPartitioner
    关于hive multi group by的疑惑
    Hive解决 java.io.IOException:SerDeException:LazySimpleSerDe
    一个字符编码引发的血案
    CSS颜色代码大全
    C#中ParameterizedThreadStart和ThreadStart区别
    Sql Server REPLACE函数的使用
    QueryString的用法
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/6737520.html
Copyright © 2011-2022 走看看