zoukankan      html  css  js  c++  java
  • redis 小结

    一、介绍

      1、Redis是什么

      REmote Dictionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。

      Redis提供了一些丰富的数据结构,包括 lists, sets, ordered sets 以及 hashes ,当然还有和Memcached一样的 strings结构.Redis当然还包括了对这些数据结构的丰富操作。

      2、Redis的优点

      性能极高 – Redis能支持超过 100K+ 每秒的读写频率。

      丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。

      原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。

      丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

    二、下载

         官方下载地址:http://redis.io/download,不过官方没有64位的Windows下的可执行程序,目前有个开源的托管在github上 https://github.com/ServiceStack/redis-windows/tree/master/downloads 但是速度比较慢

    三、文件目录

      redis-cli.exe Redis命令行操作工具

      redis-benchmark.exe:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能

      redis-server.exe 服务器

      redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况

      redis.windows.conf配置文件 

    四、应用场景

      

    (1)、会话缓存(Session Cache)

    最常用的一种使用Redis的情景是会话缓存(session cache)。用Redis缓存会话比其他存储(如Memcached)的优势在于:Redis提供持久化。当维护一个不是严格要求一致性的缓存时,如果用户的购物车信息全部丢失,大部分人都会不高兴的,现在,他们还会这样吗?

    幸运的是,随着 Redis 这些年的改进,很容易找到怎么恰当的使用Redis来缓存会话的文档。甚至广为人知的商业平台Magento也提供Redis的插件。

    (2)、全页缓存(FPC)

    除基本的会话token之外,Redis还提供很简便的FPC平台。回到一致性问题,即使重启了Redis实例,因为有磁盘的持久化,用户也不会看到页面加载速度的下降,这是一个极大改进,类似PHP本地FPC。

    再次以Magento为例,Magento提供一个插件来使用Redis作为全页缓存后端

    此外,对WordPress的用户来说,Pantheon有一个非常好的插件  wp-redis,这个插件能帮助你以最快速度加载你曾浏览过的页面。

    (3)、队列

    Reids在内存存储引擎领域的一大优点是提供 list 和 set 操作,这使得Redis能作为一个很好的消息队列平台来使用。Redis作为队列使用的操作,就类似于本地程序语言(如Python)对 list 的 push/pop 操作。

    如果你快速的在Google中搜索“Redis queues”,你马上就能找到大量的开源项目,这些项目的目的就是利用Redis创建非常好的后端工具,以满足各种队列需求。例如,Celery有一个后台就是使用Redis作为broker,你可以从这里去查看。

    (4)排行榜/计数器

    Redis在内存中对数字进行递增或递减的操作实现的非常好。集合(Set)和有序集合(Sorted Set)也使得我们在执行这些操作的时候变的非常简单,Redis只是正好提供了这两种数据结构。所以,我们要从排序集合中获取到排名最靠前的10个用户–我们称之为“user_scores”,我们只需要像下面一样执行即可:

    当然,这是假定你是根据你用户的分数做递增的排序。如果你想返回用户及用户的分数,你需要这样执行:

    ZRANGE user_scores 0 10 WITHSCORES

    Agora Games就是一个很好的例子,用Ruby实现的,它的排行榜就是使用Redis来存储数据的,你可以在这里看到。

    (5)、发布/订阅

    最后(但肯定不是最不重要的)是Redis的发布/订阅功能。发布/订阅的使用场景确实非常多。我已看见人们在社交网络连接中使用,还可作为基于发布/订阅的脚本触发器,甚至用Redis的发布/订阅功能来建立聊天系统!(不,这是真的,你可以去核实)。

    五、测试

      (1)

      set name "John"

      get name

      mset name "Json" num 1000

      mget name num

      (2)

      key * //获取所有的key  ;keys prefix_*     // 查看前缀为"prefix_"的所有keys

      flushdb   // 清除当前数据库的所有keys

      flushall    // 清除所有数据库的所有keys

    参考文档:

    redis 命令集合:http://blog.csdn.net/ithomer/article/details/9213185

     配置文件详解:http://blog.csdn.net/ithomer/article/details/9232891

  • 相关阅读:
    【CodeForces】[659C]Tanya and Toys
    【CodeForces】[659A]Round House
    高并发网络编程之epoll详解
    Linux写时拷贝技术(copy-on-write)
    5种服务器网络编程模型讲解
    5种服务器网络编程模型讲解
    当你输入一个网址的时候,实际会发生什么?
    error: std::ios_base::ios_base(const std::ios_base&)’是私有的
    C++和JAVA的区别
    为什么内联函数,构造函数,静态成员函数不能为virtual函数
  • 原文地址:https://www.cnblogs.com/sdaulldd/p/6226547.html
Copyright © 2011-2022 走看看