zoukankan      html  css  js  c++  java
  • [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脚本:

  • 相关阅读:
    xml/xslt常用转义字符
    用ScriptManager实现Web服务的异步调用
    声明静态方法和实例方法的原则
    http request header 中的host行的作用
    获取客户端数据
    HTTP 处理程序(HttpHandlers)
    display与visibility
    会话管理
    ASP.NET 管道
    HttpContext, HttpRequest, HttpResponse
  • 原文地址:https://www.cnblogs.com/ytuan996/p/10651516.html
Copyright © 2011-2022 走看看