Redis学习笔记:订阅和发布

一、基本使用 除了任务队列以外,redis还有一种基于“发布/订阅”模式的消息传递,它能让消息在多个频道以及多个客户端之间进行消息传递。 1.1 发布 向频道发布消息使用命令PUBLISH channel message: 消息发送成功后,将会返回一个整数,表示收到这条消息的订阅者数量,本例中的0即...
阅读全文

Redis小案例(二):redis实现消息队列

一、任务队列概述 消息队列,顾名思义就是一个用来传递任务的队列。消息队列在开发中十分常见,经常用在页面后台处理需要很长时间的操作时,例如发送邮件、短信以及进行复杂数据运算操作等,这些操作通常会阻塞页面相当长的时间,为了避免用户等待太久,一般会先给用户页面进行相应,然后在后台使用独立的线程或者进程来处...
阅读全文
Redis小案例(一):实现网站访问频率限制 Redis

Redis小案例(一):实现网站访问频率限制

网站中经常需要用到网站限流,例如限制用户恶意爬虫获取网页信息以及在网站访问流量大时限制访问频率等等,这里使用redis做一个简单的网站登录限制案例。 一、使用EXPIRE进行访问频率限制 逻辑:用户登入网页,判断是否为第一次登入,如果是,创建一个新键记录访问次数为1,并设置超时时间。后面再登入时先判...
阅读全文

python redis-py模块用法

一、安装 redis中操作redis的模块为redis-py,使用pip install redis或者easy_install redis安装即可,也可以进去https://pypi.python.org/pypi/redis下载源码安装。 二、使用 安装好模块后,使用import redis即可...
阅读全文

Redis学习笔记:设置键值过期时间

一、命令介绍 Redis中的EXPIER命令可以给键值设置过期时间,命令格式为:EXPIRE key second,表示给键key设置过期时间second,到期之后系统会自动删除该键,这个功能经常会被用到,例如限时优惠活动和短信验证码等。EXPIRE命令返回1表示设置过期时间成功,返回0表示键不存在...
阅读全文

Redis学习笔记:事务

一、事务的描述 和MySQL一样,Redis中也有事务这一个概念,redis中的事务也是可以用来执行一组命令的集合,同时也可以把事务当作一个命令。因为它的特性和命令无差,要么正确全部运行,要么错误都不运行。但是和MySQL的事务不同的是,redis中的事务不支持回滚操作。也就是说,一旦事务出错,它没...
阅读全文

Golang redigo使用笔记(二):并发处理和连接池

一、并发问题 在redigo官方的文档描述中,Receive()方法是不支持多并发的,原文为: 而Do()方法是间接调用了Receive()方法,所以Do()方法也是不支持多并发的。我们可以用一段代码来验证这一点: 这里是一个函数,完成了一个简单的INCRBY命令,实现nKey + i功能,和正常情...
阅读全文
Redis中的有序集合类型 Redis

Redis中的有序集合类型

一、概述 有序集合也是一个集合,和集合的不同之处在于有序集合是有序的,它通过给集合中每一个元素都关联一个分数,使得我们可以通过分数来获取一定范围内的元素。 二、命令 2.1 增加和删除元素 ZADD key score member :添加元素,当key不存在时创建。分数支持整数和双精度浮点数,可以...
阅读全文