阅读更多

11顶
0踩

研发管理

转载新闻 Redis 在现实世界的 5 个用法

2018-04-11 11:19 by 副主编 jihong10102006 评论(3) 有47830人浏览
Redis是一个强大的内存数据结构存储,包含数据库,缓存和消息代理等多种用途。大多数人经常认为它不过是一个简单的键值存储,但其实它有更多的能力。下面我将会总结一些Redis可以做的事情的真实例子。

1.全页面缓存

首先是整页缓存。如果你正在使用服务器端呈现的内容,则不需要为每个单独的请求重新渲染每个页面。使用如Redis这样的缓存,你可以缓存经常请求的内容,从而大大减少请求最多的页面的延迟,并且大多数框架针对Redis缓存页面都有hooks。
简单命令
/ Set the page that will last 1 minuteSET key "<html>...</html>" EX 60// Get the pageGET key

2.排行榜

Redis令人耀眼的地方之一就是排行榜。由于Redis在内存中,因此可以非常快速和高效地处理递增和递减。将此与每个请求运行SQL查询比较,性能收益巨大!这与Redis的排序集相结合意味着你可以以毫秒为单位抓取列表中评分最高的项目,而且实现起来非常容易。
简单命令
// Add an item to the sorted setZADD sortedSet 1 "one"http:// Get all items from the sorted setZRANGE sortedSet 0 -1// Get all items from the sorted set with their score
ZRANGE sortedSet 0 -1 WITHSCORES

3.会话Session存储

我所见的Redis最常见的用途是会话存储。与其他会话存储(如Memcache)不同,Redis可以保留数据,以便在缓存停止的情况下,在重新启动时,所有数据仍然存在。即便不是需要严格持续的任务,此功能仍可以为你的用户省去大量的麻烦。没有人会乐于见到他们的会话被无缘无故随机删掉。
简单命令
// Set session that will last 1 minuteSET randomHash "{userId}" EX 60// Get userIdGET randomHash

4.队列

使用Redis可以做的一个不太常见,但非常有用的事情是排队。无论是电子邮件队列还是其他应用程序使用的数据,你都可以在Redis中创建一个高效的队列。任何熟悉堆栈以及会push和pop项目的开发人员都可以轻松自然地使用此功能。
简单命令
// Add a Message
HSET messages <id> <message>ZADD due <due_timestamp> <id>// Recieving Message
ZRANGEBYSCORE due -inf <current_timestamp> LIMIT 0 1
HGET messages <message_id>// Delete  Message
ZREM due <message_id>HDEL messages <message_id>

5.pub/sub

Redis在真实世界的最终用法即我将在这篇文章中提出的pub / sub。这是Redis内置的最强大的功能之一;得到的可能是无限的。你可以创建一个实时聊天系统,在社交网络上触发好友请求的通知等等。这个功能是Redis提供的最被低估的功能之一,但功能非常强大,而且使用简单。
简单命令
// Add a message to a channelPUBLISH channel message// Recieve messages from a channelSUBSCRIBE channel

结论

我希望你会喜欢这些Redis在真实世界的使用。虽然这篇文章只抓住了Redis能为你做的事情的表面,但是我希望你能从中获得应如何充分利用Redis的启发。
  • 大小: 14.4 KB
来自: 代码技巧
11
0
评论 共 3 条 请登录后发表评论
3 楼 hongyabing 2018-05-02 15:25
2 楼 andy54321 2018-04-13 14:48
redis很强大。
尤其是结合 redis sentinel 和 3.x后支持 的 redis cluster。
1 楼 masuweng 2018-04-12 15:03
  

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Redis现实世界5用法(转)

    Redis是一个强大的内存数据结构存储,包含数据库,缓存和消息代理等多种用途。大多数人经常认为它不过是一个简单的键值存储,但其实它有更多的能力。下面我将会总结一些Redis可以做的事情的真实例子。? 1.全页面缓存?首先是整页缓存。如果你正在使用服务器端呈现的内容,则不需要为每个单独的请求重新渲染每个页面。使用如Redis这样的缓存,你可以缓存经常请求的内容,从而大大减少请求最多的页面的延...

  • Redis 在真实世界5用法

    https://www.jb51.net/article/136015.htm Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。 Redis是一个强大的内存数据结构存储,包含数据库...

  • python使用redis5新数据类型Stream的方法

    7月份redis5.0隆重推出重量级新特性Stream!各位码农是不是早就磨拳擦掌跃跃欲试呢。下面介绍如何在python中使用Stream新特性。 Stream的命令行使用方法参考:?Redis5.0重量级特性Stream尝鲜 python使用方法参考:使用redis-py-cloud操作redis5 stream数据 ? 用到的包:?redis-py-cloud? 通常使用的操作red...

  • redis在java程序中的用法

    基础篇:redis在java程序中的用法 1.需要打开redis数据库服务 2.需要引入jedis.jar 3.创建MyRedis类进行测试 import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import re

  • thinkphp5连接使用redis

    thinkphp5 已封装好redis链接类,我们在项目实际开发中,可以直接拿来进行使用。 1.TP5内置的redis类在cache中 2.打开redis.php,可更改redis链接地址,密码。 3.TP5自带的redis封装了一些简单的redis操作命令,适合key-value使用。要想使用原生语句操作redis,可添加一个方法,将redis实例暴露出去。 /* * 返回...

  • redis在java中的使用

    点击阅读:关于redis的基础知识介绍 点击阅读:redis集成ibatis缓存 使用Java操作Redis需要jedis jar包 这里使用的是maven pom.xml <dependency> <groupId>redis.client</groupId> <artifactId>jedis</artifactId>

  • TP5 ThinkCMF 使用redis 缓存

    在TP5 版本的 ThinkCMF 中使用redis. 首先在服务器安装配置好redis 在 ThinkCMF 中官方已经为我们为我们写好了redis 类 但是只是封装的几个简单的get set 方法 如果要用全部的redis 方法,就要先在simplewind\thinkphp\library\think\cache\driver这个目录下找到redis.php 文件 protect...

  • Redis在C#中的使用

    之前写了Redis在Windwos下的安装方法,没有安装的朋友可以参考下Windows下安装Redis下面开始介绍Redis在C#中的使用打开VS新建一个winform项目(我这里用的是vs2015)然后添加NuGet包 StackExchange.Redis(这里注意要求.net .net framework的环境最少是4.5)否则会报错这时候我们把.net framework改为4.5然后安装...

  • 在laravel中使用redis

    在laravel中使用redis

  • Redis

    目录 Redis简介 安装教程 配置 数据类型 Redis键命令 持久化 事务 安全 Java 使用 Redis(Jedis) Spring使用Redis(SpringDataRedisRedis简介 Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据...

  • Redis在项目中的几种使用

    今天来讲一讲项目中使用redis的几种用法 实现赞踩 可以使用集合或者哈希表来完成赞踩 使用集合的sadd和srem来完成时,首先我们需要创建两个集合,一个赞集合,一个踩集合 点赞时:向赞集合添加该用户,删除踩集合中的该用户 踩时:向踩集合添加该用户,删除赞集合中的该用户 demo: public class JedisDemo { private static J...

  • redisredis在java中的使用

    Redis 简介 Redis 优势 Redis与其他key-value存储有什么不同 Redis下载 Redis 安装(Linux) 下载编译 这里有的坑 启动会遇到的一些问题 1、第一个提示somaxconn这个值为128太小了,这个值是系统的网络连接队列大小,而redis的TCP backlog设置的值为511,因此受限,所以修改下系统的值 2、overcommit_memory设...

  • Redis正确使用的十个技巧

    前面讲到Redis的一些数据类型和基本使用,今天我们主要根据资料总结一下关于redis使用过程的十个技巧: 1.停止使用KEYS*? 很多时候当我们关注一个redis实例的统计数据,我们会快速的输入"KEYS*"命令,这样key的信息会很明显地展示出来。从程序化的 角度出发往往倾向于写出下面这样的伪代码: for key in 'keys * ': doAllTheThings();

  • CentOS7安装Redis5

    CentOS7安装Redis5Redis简介为什么要使用Redis安装步骤配置修改运行Redis连接Redis扩展连接问题停止服务方法停服务错误原因排查步骤Redis客户端推荐 Redis简介 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。 Redis是一个开源的使用ANSI C语言编写、遵守BSD协...

  • redis 5.0.5 5分钟搭建redis集群

    环境:centos 7 1:下载并安装redis $ wget http://download.redis.io/releases/redis-5.0.5.tar.gz $ tar xzf redis-5.0.5.tar.gz $ cd redis-5.0.5 $ make redis 5.0版本 集群搭建不需要我们安装ruby就可以搭建成功,并且redis给我们提供了快速搭建脚本,执行u...

  • redis的SCAN命令的用法

    redis的SCAN命令的用法 MATCH:功能对元素的模式匹配工作是在命令从数据集中取出元素后和向客户端返回元素前的这段时间内进行的, 所以如果被迭代的数据集中只有少量元素和模式相匹配, 那么迭代命令或许会在多次执行中都不返回任何元素。 详情见官网链接http://www.redis.cn/commands/scan.html jav...

  • Redis学习5redis-cli使用方法总结

    1.redis-cli使用时各参数的含义和使用方法[email protected]:~/7000$ redis-cli --help redis-cli 3.0.3Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]] -h <hostname> Server hostname (default: 127.0.0.1). -p <port>

  • redis的使用技巧

    最近搭建新服务器,客户方提出需求,保留类似8888,66666等特殊号码作为靓号,而游戏ID的生成跟记录跟redis相关,这里总结一下redis用法与技巧. 首先简单介绍一下我们的游戏id生成机制,用户发送登录请求到游戏服务器后,游戏服务器会去账号服务器获取游戏id,accsvrd是连接到redis上,当有查询过来时,回去redis服务器查询用户的openid对应的游戏id是否存在,存在则返...

  • Redis的bind的误区

    今天在搭建Redis服务集群的时候,发现自己一直以来对Redis中bind的理解的一个误区。 在今天以前,我一直认为Redis中的配置文件中的bind的作用是:用来限制Redis服务器用来接收来自哪些服务器(IP地址)的Redis连接请求。即:只有在bind指定的IP地址的计算机才可以访问这个Redis服务器。(直到今天我才知道以上的理解都是错误) 例如: bind 127.0.0.1 ...

  • redis的hash结构用法

    我们都知道redis支持5种数据类型的存储,今天主要来说一下hash散列的使用: String: 字符串 Hash: 散列 List: 列表 Set: 集合 Sorted Set: 有序集合 Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。 使用场景:当你需要往redis里面保存一些字段,第二次如果有新增的字段就添加进去,已经有...

Global site tag (gtag.js) - Google Analytics 重庆时时彩怎么作弊的