[redis] 数据特性简单实验
位图
由bit位组成的数组,实际的底层数组类型是字符串,而字符串的本质是二进制大对象,所以将其视作位图,位图存储的是boolean指,一定程度上可以减少存储空间。
127.0.0.1:6379> setbit "users_tried" 100 1 -- 设置位图指定偏移量的比特位的值
(integer) 0
127.0.0.1:6379> getbit "users_online_order" 400 -- 获取指定偏移处比特位的值
(integer) 0
127.0.0.1:6379> bitcount "users_tried" -- 位图中被设置为1的数
(integer) 1
127.0.0.1:6379> bitop and "users_tried_ID" "users_tried" "users_online_order" -- 位操作, 包括and or xor not;位运算的结果被保存在目标键中
(integer) 13
127.0.0.1:6379> bitcount "users_tried_ID"
(integer) 0
设置键的过期时间:
对于键的管理,我们不仅可以使用del 和 unlink 删除键,还可以设置键的过期时间,让其自动删除。
127.0.0.1:6379> lpush "test" 20 30 40 50 80
(integer) 5
127.0.0.1:6379> expire "test" 20 -- 设置键的过期时间为20 秒
(integer) 1
127.0.0.1:6379> ttl "test"
(integer) 14
127.0.0.1:6379> exists "test" -- 20 秒过后
(integer) 0
如何清除一个键的过期时间:
使用persist持久化键;键的值被删除或者替换;被另一个过期的键重命名。
expireat 和 expire 命令类似,但它可以指定一个绝对的Unix时间。
sort:
127.0.0.1:6379> sadd "test" 24 54 2 34 5 6 24
(integer) 6
127.0.0.1:6379> sort "test"
1) "2"
2) "5"
3) "6"
4) "24"
5) "34"
6) "54"
127.0.0.1:6379> sadd "test2" "sdjdvd" "dvdvd" "awrb" "vvparn"
(integer) 4
127.0.0.1:6379>
127.0.0.1:6379> sort "test2" alpha
1) "awrb"
2) "dvdvd"
3) "sdjdvd"
4) "vvparn"
127.0.0.1:6379> sort "test2" alpha limit 0 2
1) "awrb"
2) "dvdvd"
127.0.0.1:6379> sort "test2" alpha desc
1) "vvparn"
2) "sdjdvd"
3) "dvdvd"
4) "awrb
高级用法
sort key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination]
使用管道
根据redis的通信协议,客户端执行一条命令的过程是:1.Client发送一条命令;2.Server接收命令放入队列;3.执行命令;4.返回结果;
管道的目的是在于减少Client和Server的传输时间;
redis-cli --pipe commandFile
redis事务:
multi 开启事务,exec 提交事务;
注意redis的事务和关系型数据库事务的区别:redis事务没有回滚功能。一般redis的事务出错在两个地方:1.语法错误;2. 错误命令之后的其他命令都会被执行。
发布订阅:
发布者:
127.0.0.1:6379> publish "test" "msg one"
(integer) 2
127.0.0.1:6379> publish "test" "msg two"
(integer) 2
127.0.0.1:6379> publish "test" "msg tree"
(integer) 2
订阅者:
127.0.0.1:6379> subscribe "test"
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "test"
3) (integer) 1
1) "message"
2) "test"
3) "msg one"
1) "message"
2) "test"
3) "msg two"
1) "message"
2) "test"
3) "msg tree"
subscribe 命令用来监听特定频道的可用消息,可以一次订阅多个频道,也可以使用 psubscribe 订阅匹配指定模式的频道。取消订阅频道 unsubscribe
调试Lush脚本:
[redis] 数据特性简单实验的更多相关文章
- 图解Redis之数据结构篇——简单动态字符串SDS
图解Redis之数据结构篇--简单动态字符串SDS 前言 相信用过Redis的人都知道,Redis提供了一个逻辑上的对象系统构建了一个键值对数据库以供客户端用户使用.这个对象系统包括字符串对象 ...
- Redis数据持久化、数据备份、数据的故障恢复
1.redis持久化的意义----redis故障恢复 在实际的生产环境中,很可能会遇到redis突然挂掉的情况,比如redis的进程死掉了.电缆被施工队挖了(支付宝例子)等等,总之一定会遇到各种奇葩的 ...
- Redis简介与简单安装
Redis简介与简单安装 一.NoSQL的风生水起 1.1 后Web2.0时代的发展要求 随着互联网Web2.0网站的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类 ...
- Redis 数据变化通知服务实践
从Redis 2.8.0版本起,Redis加入了“Keyspace notifications”(即“键空间通知”)的功能.键空间通知,允许Redis客户端从“发布/订阅”通道中建立订阅关系,以便客户 ...
- Redis 高级特性
Redis 数据结构 Redis 常用的数据类型主要有以下五种: String Hash List Set Sorted set Redis 内部使用一个 redisObject 对象来表示所有的 k ...
- redis数据库的简单介绍
NoSQL:一类新出现的数据库(not only sql) 泛指非关系型的数据库 不支持SQL语法 存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式 NoSQL的世 ...
- Redis数据"丢失"讨论及规避和解决的几点总结
Redis大部分应用场景是纯缓存服务,请求后端有Primary Storage的组件,如MySQL,HBase;请求Redis的键未命中,会从primary Storage中获取数据返回,同时更新Re ...
- redis 高级特性 不要太好用
Redis高级特性及应用场景 redis中键的生存时间(expire) redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它. 过期时间可以设置为秒或者毫秒精度. ...
- Redis的特性以及优势(附官网)
NoSQL:一类新出现的数据库(not only sql) 泛指非关系型的数据库 不支持SQL语法 存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式 NoSQL的世 ...
随机推荐
- @property 修饰符
原子性--- nonatomic 特质 在默认情况下,由编译器合成的方法会通过锁定机制确保其原子性(atomicity).如果属性具备 nonatomic 特质,则不使用同步锁.请注意,尽管没有名为“ ...
- 一些好用的 Oracle 批处理和语句
# 备份脚本 backup.bat @ECHO OFF COLOR 0A SET DaysAgo=1 SET Today=%date:~0,4%%date:~5,2%%date:~8,2% EXP u ...
- Zedboard学习(三):PL下流水灯实验 标签: fpgazynqPL 2017-07-05 11:09 21人阅读 评论(0)
zynq系列FPGA分为PS部分和PL部分. PL: 可编程逻辑 (Progarmmable Logic), 就是FPGA部分. PS: 处理系统 (Processing System) , 就是与F ...
- 实践作业4:Web测试实践(小组作业)每日任务记录2
实践作业4:Web测试实践(小组作业)每日任务记录2 会议时间:2017年12月22日 会议地点:东九教学楼自习区 主 持 人:王晨懿 参会人员:王晨懿.余晨晨.郑锦波.杨潇.侯欢.汪元 记 录 ...
- JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(10):通过注解(annotation)装配Bean之(@Configguration、@Component、@Value、@ComponentScan、@Autowired、@Primary、@Qualifier、@Bean)
一.通过注解(annotation)装配Bean 通过之前的学习,我们已经知道如何使用XML装配Bean,但是更多的时候已经不再推荐使用XML的方式去装配Bean,更多的时候会考虑注解(annotat ...
- 编写高质量代码改善C#程序的157个建议——建议152:最少,甚至是不要注释
建议152:最少,甚至是不要注释 以往,我们在代码中不写上几行注释,就会被认为是钟不负责任的态度.现在,这种观点正在改变.试想,如果我们所有的命名全部采用有意义的单词或词组,注释还有多少存在的价值. ...
- WorkFlow 工作流 学习笔记
传统ERP为制造业企业产供销人财物的管理提供了一整套优化企业资源利用,集物流.信息流.资金流为一体的现代化管理工具.但是它在过程集成和企业间集成方面存在不足.具体表现在: 1.传统ERP是一个面向功能 ...
- 团体程序设计天梯赛L2-002 链表去重 2017-03-22 18:12 25人阅读 评论(0) 收藏
L2-002. 链表去重 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一个带整数键值的单链表L,本题要求你编写程序,删除 ...
- mysql多字段唯一索引
项目中需要用到联合唯一索引: 例如:有以下需求:每个人每一天只有可能产生一条记录:处了程序约定之外,数据库本身也可以设定: 例如:user表中有userID,userName两个字段,如果不希望有2条 ...
- MySQL如何查看连接数和状态
查看连接数 命令:show processlist 如果要是root账号,能够看见当前所有用户的连接.如果是普通账号,只能看到自己占用的连接数. show processlist只能是列出前100 ...