[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脚本:

原文地址:https://www.cnblogs.com/ytuan996/p/10651516.html

时间: 2024-11-09 00:57:38

[redis] 数据特性简单实验的相关文章

Redis入门很简单之六【Jedis常见操作】

Redis入门很简单之六[Jedis常见操作] 博客分类: NoSQL/Redis/MongoDB redisjedisnosql缓存教程 之前介绍了Jedis的基本操作,连接池的支持,以及和Spring的整合.接下来的内容,继续Jedis的最为常见的操作.主要包括常用的列表(list).集合(set).有序集合(sorted set).哈希表(hash)等数据结构,以及其他特性支持. <一>. 使用list: 可以使用列表模拟队列(queue).堆栈(stack),并且支持双向的操作(L或者

Redis 数据变化通知服务实践

从Redis 2.8.0版本起,Redis加入了"Keyspace notifications"(即"键空间通知")的功能.键空间通知,允许Redis客户端从"发布/订阅"通道中建立订阅关系,以便客户端能够在Redis中的数据因某种方式受到影响时收到相应事件. 可能接收到的事件举例如下: 影响一个给出的键的所有命令(会告诉你哪个键被执行了一个命令,这个命令是什么): 接收到了一个LPUSH操作的所有键(LPUSH命令:key v1 [v2 v3.

NoSQL初探之人人都爱Redis:(1)Redis简介与简单安装

一.NoSQL的风生水起 1.1 后Web2.0时代的发展要求 随着互联网Web2.0网站的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题: (1)对数据库高并发读写的需求 网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求.关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求

Redis学习笔记(简单了解与运行)

Redis学习笔记(简单了解与运行) 开源的非关系型数据库 是REmote Dictionary Server(远程字典服务器)的缩写,以字典结构存储数据 允许其他应用通过TCP协议读写字典中的内容. Redis支持存储的键值数据类型 字符串类型 散列类型 列表类型 集合类型 有序集合类型 Redis的特性 通过一个列子看出Mysql和Redis的存储区别 例如: (存储一篇文章,文章包括:标题(title),正文(content),阅读量(views),标签(tags)) 需求: 把数据存储在

Redis高级特性及应用场景

Redis高级特性及应用场景 redis中键的生存时间(expire) redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它. 过期时间可以设置为秒或者毫秒精度. 过期时间分辨率总是 1 毫秒. 过期信息被复制和持久化到磁盘,当 Redis 停止时时间仍然在计算 (也就是说 Redis 保存了过期时间). expire  设置生存时间(单位/秒) expire key seconds(秒) ttl 查看键的剩余生存时间 ttl key persist 取消生存

Redis数据持久化

总的来说有两种持久化方案:RDB和AOF RDB方式按照一定的时间间隔对数据集创建基于时间点的快照. AOF方式记录Server收到的写操作到日志文件,在Server重启时通过回放这些写操作来重建数据集.该方式类似于MySQL中基于语句格式的binlog.当日志变大时Redis可在后台重写日志. 若仅期望数据在Server运行期间存在则可禁用两种持久化方案.在同一Redis实例中同时开启AOF和RDB方式的数据持久化方案也是可以的.该情况下Redis重启时AOF文件将用于重建原始数据集,因为叫R

redis数据库的简单介绍

NoSQL:一类新出现的数据库(not only sql) 泛指非关系型的数据库 不支持SQL语法 存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式 NoSQL的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,以及擅长的业务场景 NoSQL中的产品种类相当多: Mongodb Redis Hbase hadoop Cassandra hadoop NoSQL和SQL数据库的比较: 适用场景不同:sql数据库适合用于关系特别复杂的数据查询场

redis 高级特性 不要太好用

Redis高级特性及应用场景 redis中键的生存时间(expire) redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它. 过期时间可以设置为秒或者毫秒精度. 过期时间分辨率总是 1 毫秒. 过期信息被复制和持久化到磁盘,当 Redis 停止时时间仍然在计算 (也就是说 Redis 保存了过期时间). expire  设置生存时间(单位/秒) [python] view plain copy expire key seconds(秒) ttl 查看键的剩余

redis消息队列简单应用

参考 https://blog.yxccan.cn/blog/detail/3 一.什么是消息队列 是一个消息的链表,是一个异步处理的数据处理引擎. PS:可以理解为在redis的list列表中存放消息数据,然后按照排队方式先进先出(左进右出:右进左出) 二.可以使用的应用场景 主要应用一些延迟或异步操作的场景比如:发送邮件.发送短信.视频转码.图片转码.日志存储.导入数据等在发送邮件或者短信,我们不希望程序一直停留,等待发送成功才相应,而是异步进行处理,即:将待发送的邮件数据添加到消息队列中,