位图

由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] 数据特性简单实验的更多相关文章

  1. 图解Redis之数据结构篇——简单动态字符串SDS

    图解Redis之数据结构篇--简单动态字符串SDS 前言     相信用过Redis的人都知道,Redis提供了一个逻辑上的对象系统构建了一个键值对数据库以供客户端用户使用.这个对象系统包括字符串对象 ...

  2. Redis数据持久化、数据备份、数据的故障恢复

    1.redis持久化的意义----redis故障恢复 在实际的生产环境中,很可能会遇到redis突然挂掉的情况,比如redis的进程死掉了.电缆被施工队挖了(支付宝例子)等等,总之一定会遇到各种奇葩的 ...

  3. Redis简介与简单安装

    Redis简介与简单安装   一.NoSQL的风生水起 1.1 后Web2.0时代的发展要求 随着互联网Web2.0网站的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类 ...

  4. Redis 数据变化通知服务实践

    从Redis 2.8.0版本起,Redis加入了“Keyspace notifications”(即“键空间通知”)的功能.键空间通知,允许Redis客户端从“发布/订阅”通道中建立订阅关系,以便客户 ...

  5. Redis 高级特性

    Redis 数据结构 Redis 常用的数据类型主要有以下五种: String Hash List Set Sorted set Redis 内部使用一个 redisObject 对象来表示所有的 k ...

  6. redis数据库的简单介绍

    NoSQL:一类新出现的数据库(not only sql) 泛指非关系型的数据库 不支持SQL语法 存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式 NoSQL的世 ...

  7. Redis数据"丢失"讨论及规避和解决的几点总结

    Redis大部分应用场景是纯缓存服务,请求后端有Primary Storage的组件,如MySQL,HBase;请求Redis的键未命中,会从primary Storage中获取数据返回,同时更新Re ...

  8. redis 高级特性 不要太好用

    Redis高级特性及应用场景 redis中键的生存时间(expire) redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它. 过期时间可以设置为秒或者毫秒精度. ...

  9. Redis的特性以及优势(附官网)

    NoSQL:一类新出现的数据库(not only sql) 泛指非关系型的数据库 不支持SQL语法 存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式 NoSQL的世 ...

随机推荐

  1. C++ split

    /*************************************************Function: splitDescription: 根据空格切分字符串Calls: // 被本函 ...

  2. adf笔记

    1>jsf页面js调试,手动添加debugger调试 方案:在页面中添加debugger,然后打开“开发者工具”(必须打开),直接运行页面自动跳转到debugger处. 2>jdevelo ...

  3. turntable

    1.业务流程 2.80001代码逻辑 3.80002代码逻辑 4抽奖概率计算

  4. .net正则查询

    using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...

  5. CentOS 7 下 ifconfig command not found 解决办法

    1.查看ifconfig命令是否存在 查看 /sbin/ifconfig是否存在 2.如果ifconfig命令存在,查看环境变量设置 [root@localhost ~]# echo $PATH 如果 ...

  6. gradle创建spring-boot项目

    刚来新公司,熟悉了公司项目搭建的框架,了解到了一种新的项目管理工具:gradle,从网上了解,据说比maven更加灵活化,于是便学习了一番.在此记录下来,一遍以后使用.gradle的安装就不说了,网上 ...

  7. Primer 三四五章

    序言 看了看表,再看了看书,2个小时就没啦(又到了吃中饭的时间,O(∩_∩)O哈哈~).一个上午感觉啥也没干呢,不过还是从书上看到了一些东西,对于这些基础的知识,还是有些东西没有记得很深,所以还是花了 ...

  8. 【转载】mysql常用函数汇总

    转载地址:http://www.jb51.net/article/40179.htm 一.数学函数ABS(x)   返回x的绝对值BIN(x)   返回x的二进制(OCT返回八进制,HEX返回十六进制 ...

  9. dede上传文件乱码问题解决

    修改下列两个文件: /include/dialog/select_soft_post.php/include/dialog/select_soft.php 改: select_soft.php文件第1 ...

  10. BOLT.NET 学习笔记(一) 开篇 用.net winform 快速开发 炫酷的界面

    BOLT.NET 学习笔记(一) 开篇 用.net winform 快速开发 炫酷的界面 bolt 基本介绍 Bolt界面引擎是迅雷公司从2009年开始开发的第四代界面库.迅雷7是首个采用该引擎成功开 ...