redis(二)高级用法
redis(二)高级用法
事务
redis的事务是一组命令的集合。事务同命令一样都是redis的最小执行单元,一个事务中的命令要么执行要么都不执行。
首先需要multi命令来开始事务,用exec命令来执行事务。
127.0.0.1:> multi
OK
127.0.0.1:> hset user: name xiaoming
QUEUED
127.0.0.1:> hset user: name daxiong
QUEUED
127.0.0.1:> exec
) (integer)
) (integer)
127.0.0.1:> hgetall user:
) "name"
) "daxiong"
) "score"
) ""
watch
127.0.0.1:> set key
OK
127.0.0.1:> watch key
OK
127.0.0.1:> set key
OK
127.0.0.1:> multi
OK
127.0.0.1:> set key
QUEUED
127.0.0.1:> exec
(nil)
127.0.0.1:> get key
""
生存时间
expire key seconds
//设置成功返回1,失败返回0
127.0.0.1:> set session:aabb uid1122
OK
127.0.0.1:> expire session:aabb
(integer)
127.0.0.1:> del session:aabb
(integer)
127.0.0.1:> expire session:aabb
(integer) 127.0.0.1:> expire session:aabb
(integer)
127.0.0.1:> ttl session:aabb
(integer)
ttl key
127.0.0.1:> expire session:aabb
(integer)
127.0.0.1:> ttl session:aabb
(integer)
127.0.0.1:> get session:aabb
""
127.0.0.1:> ttl session:aabb
(integer)
127.0.0.1:> persist session:aabb
(integer)
127.0.0.1:> ttl session:aabb
(integer) -
缓存数据
排序
127.0.0.1:> lpush list
(integer)
127.0.0.1:> sort list
) ""
) ""
) ""
) ""
) ""
) ""
) ""
127.0.0.1:> zadd set
(integer)
127.0.0.1:> sort set
) ""
) ""
) ""
) ""
127.0.0.1:> sort set desc
) ""
) ""
) ""
) ""
BY参数
127.0.0.1:> lpush userids
(integer)
127.0.0.1:> set user_score_1
OK
127.0.0.1:> set user_score_2
OK
127.0.0.1:> set user_score_3
OK
127.0.0.1:> sort userids
) ""
) ""
) ""
127.0.0.1:> sort userids by user_score_*
) ""
) ""
) ""
127.0.0.1:> sort userids by user_score_* desc
) ""
) ""
) ""
GET参数
127.0.0.1:> sort userids by user_score_* get user_name_*
) "xiaoming"
) "daxiong"
) "xiaohong"
127.0.0.1:> sort userids by user_score_* desc get user_name_*
) "xiaohong"
) "daxiong"
) "xiaoming"
STORE参数
任务队列
BRPOP key timeout
优先级队列
brpop key [key...] timetout
发布/订阅模式
PUBLISH CHANNEL MESSAGE
SUBSCRIBE CHANNEL MESSAGE
#向channel.test发布消息
127.0.0.1:> publish channel.test hello
(integer) #返回0表明订阅者为0,没有发布消息
127.0.0.1:> publish channel.test hello
(integer) #返回n表明订阅者为n,成功发布给1个消费者
#订阅channel.test消息
127.0.0.1:> subscribe channel.test
Reading messages... (press Ctrl-C to quit)
) "subscribe"
) "channel.test"
) (integer)
#接收到来自channel.test的消息
) "message"
) "channel.test"
) "hello"
管道
节省空间
redis(二)高级用法的更多相关文章
- sqlalchemy(二)高级用法
sqlalchemy(二)高级用法 本文将介绍sqlalchemy的高级用法. 外键以及relationship 首先创建数据库,在这里一个user对应多个address,因此需要在address上增 ...
- 【iOS开发】Alamofire框架的使用二 高级用法
Alamofire是在URLSession和URL加载系统的基础上写的.所以,为了更好地学习这个框架,建议先熟悉下列几个底层网络协议栈: URL Loading System Programming ...
- sqlalchemy(二)高级用法 2
转自:https://www.cnblogs.com/coder2012/p/4746941.html 外键以及relationship 首先创建数据库,在这里一个user对应多个address,因此 ...
- Redis 一些高级用法
延迟消息队列 利用 expire keyspace notification Redis 过期时,会向特定的消息队列发送消息,监听该消息队列 在 redis.conf 修改 notify-keyspa ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
- redis的Linux系统安装与配置、redis的api使用、高级用法之慢查询、pipline事物
今日内容概要 redis 的linux安装和配置 redis 的api使用 高级用法之慢查询 pipline事务 内容详细 1.redis 的linux安装和配置 # redis 版本选择问题 -最新 ...
- SolrNet高级用法(分页、Facet查询、任意分组)
前言 如果你在系统中用到了Solr的话,那么肯定会碰到从Solr中反推数据的需求,基于数据库数据生产索引后,那么Solr索引的数据相对准确,在电商需求中经常会碰到菜单.导航分类(比如电脑.PC的话会有 ...
- 再谈Newtonsoft.Json高级用法
上一篇Newtonsoft.Json高级用法发布以后收到挺多回复的,本篇将分享几点挺有用的知识点和最近项目中用到的一个新点进行说明,做为对上篇文章的补充. 阅读目录 动态改变属性序列化名称 枚举值序列 ...
- Newtonsoft.Json高级用法(转)
手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数 ...
随机推荐
- [16]APUE:套接字
[a] socket / socketpair #include <sys/socket.h> int socket(int domain, int type, int protocol) ...
- struts2的文件上传
在做B/S系统时,通常会涉及到上传文件和下载文件,在没接struts2框架之前,我们都是使用apache下面的commons子项目的FileUpload组件来进行文件的上传,但是那样做的话,代码看起来 ...
- depot用例视图建模
1. 确定系统涉及的内容 图书馆管理系统有以下模块构成:系统登陆模块.图书馆管理模块.学生管理模块.借阅信息管理模块.图书检索模块. 2. 分析系统参与者 确定参与者首先分析系统涉及的问题领域 和 系 ...
- NABCD
1) N (Need 需求) 随着科学技术的进步和计算机行业的迅速发展,人们的工作效率得到大大提高.计算机信息处理系统的引进已彻底改变了许多系统的经营管理. 图书管理系统是学校管理机制中的重要组成部分 ...
- SQLServer : 几个特殊函数(RAND,CHECKSUM, NEWID)
这一篇我们来捋捋在T-SQL中可能会用到的几个特殊的函数 1. 随机数: RAND 返回从 0 到 1 之间的随机 float 值. 语法: RAND ( [ seed ] ) seed 提供种子值的 ...
- 和以往印象不同的Java
Java编程概述 一个Java源文件至多有一个public类,但是可以有很多class的定义 public static void main (String args[]) public 代表公共的, ...
- js 变量提升和函数提升原理
关于js的变量,开始的时候我们都会被告知,变量声明应该在引用该变量之前.关于为什么要这样做呢,开始的时候本着会用就行的目的,也没去深究.不过后来经常会发现一些让人很费解的..姑且称为现象吧.先看一段代 ...
- [Linux] xargs
xargs 命令可以将一个命令的输出,作为另一个命令的输入! 这里听来好像是管道的功能,之所以有xargs是因为有的命令不知吃管道,这时xargs就派上用场了! 具体的方法是:前一个命令的输出会使用空 ...
- Inno setup中定制安装路径
我的程序修改了安装界面,所以我的界面中提供了更改安装路径的方法. 用户修改后的路径会被传回inno setup脚本,脚本中需要做的事情如下: 1,写一个函数,来返回新的安装路径,如: function ...
- <Oracle Database>数据库启动与关闭
启动和关闭Oracle数据库 要启动和关闭数据库,必须要以具有Oracle 管理员权限的用户登陆,通常也就是以具有SYSDBA权限的用户登陆.一般我们常用INTERNAL用户来启动和关闭数据库(INT ...