• 【Redis学习之四】Redis数据类型 string


    环境
      虚拟机:VMware 10
      Linux版本:CentOS-6.5-x86_64
      客户端:Xshell4
      FTP:Xftp4
      jdk8
      redis-2.8.18

    一、redis客户端基础命令
    1、帮助命令

    PCS103:6379> help
    redis-cli 2.8.18
      Type: "help @<group>" to get a list of commands in <group> #加@ 列出group组命令解释
          "help <command>" for help on <command> #查看单个命令解释
          "help <tab>" to get a list of possible help topics #补全命令
          "quit" to exit #退出

    2、键
    键(key)是二进制,空字符串是有效key值,不宜过长或过短。

    2.1过期:给Key设置一个生存时间(秒或毫秒),当达到这个时长后,这些键值将会被自动删除
    (1)设置多少秒后过期
    EXPIRE key seconds
    set key val ex 10

    (2)设置多少毫秒后过期
    PEXPIRE key milliseconds

    (3)设置在指定Unix时间戳过期
    EXPIREAT key timestamp
    PEXPIREAT key milliseconds-timestamp

    (4)删除过期
    PERSIST key

    2.2生存时间
    Time To Live,Key的剩余生存时间

    (1)查看剩余生存时间
    TTL key 返回剩余的秒
    PTTL key 返回剩余的毫秒
    key存在但没有设置TTL,返回-1
    key存在,但还在生存期内,返回剩余的秒或者毫秒
    key曾经存在,但已经消亡,返回-2(2.8版本之前返回-1)

    2.3查找键
    KEYS pattern

    pattern取值
    * 任意长度字符
    ? 任意一个字符
    [] 字符集合,表示可以是集合中的任意一个

    2.4键类型
    TYPE key 返回值数据类型
    object encoding key 列出value值底层存储的数据结构类型

    PCS103:6379> set k1 bhjsbda
    OK
    PCS103:6379> set k2 100
    OK
    PCS103:6379> type k1
    string
    PCS103:6379> type k2
    string
    PCS103:6379> object encoding k1
    "raw"
    PCS103:6379> object encoding k2
    "int"

    raw 表示存储的是原生字符串,如果要查看value包含中文时 可以设置客户端模式:redis-cli --raw

    2.5键是否存在
    EXISTS key
    键重命名
    RENAME key newkey
    RENAMENX key newkey
    键删除
    DEL key [key ...]

    2.6清除数据库
    清除当前库数据
    FLUSHDB
    清除所有库中的数据
    FLUSHALL

    二、string字符串

    字符串是二进制安全的,最多能存储512M字节的内容

    1、设置字符串值 set
    SET key value [EX seconds] [PX milliseconds] [NX|XX]
      EX 设置过期时间,秒,等同于SETEX key seconds value
      PX 设置过期时间,毫秒,等同于PSETEX key milliseconds value
      NX 键不存在,才能设置,等同于SETNX key value
      XX 键存在时,才能设置
    设置多个键的字符串值
    MSET key value [key value ...]
    键不存在时,设置字符串值
    MSETNX key value [key value ...]
    注意:这是原子操作

    2、获取字符串值 get
    GET key
    获取多个给定的键的值
    MGET key [key ...]
    返回旧值并设置新值
    GETSET key value
    如果键不存在,就创建并赋值

    3、字符串长度
    STRLEN key

    4、追加字符串
    APPEND key value
    如果键存在就追加;如果不存在就等同于SET key value

    5、获取子字符串 索引
    GETRANGE key start end
    索引值从0开始,负数表示从字符串右边向左数起,-1表示最有一个字符
    覆盖字符串
    SETRANGE key offset value

    6、步长1的增减
    INCR key
    DECR key
    字符串值会被解释成64位有符号的十进制整数来操作,结果依然转成字符串

    按照指定步长decrement增减
    INCRBY key decrement
    DECRBY key decrement
    字符串值会被解释成64位有符号的十进制整数来操作,结果依然转成字符串

    按照指定步长浮点数decrement增加
    INCRBYFLOAT key decrement

    7、位图
    (1)赋值 取值
    设置某一位上的值
    SETBIT key offset value (0/1)
    offset偏移量,从0开始

    获取某一位上的值
    GETBIT key offset

    返回指定值0或者1在指定区间上第一次出现的位置偏移量
    BITPOS key bit [start] [end]

    (2)位运算
    operation 可以是 AND 、 OR 、 NOT 、 XOR 这四种操作中的任意一种
    BITOP AND destkey key [key ...] ,对一个或多个 key 求逻辑并,并将结果保存到 destkey
    BITOP OR destkey key [key ...] ,对一个或多个 key 求逻辑或,并将结果保存到 destkey
    BITOP XOR destkey key [key ...] ,对一个或多个 key 求逻辑异或,并将结果保存到 destkey
    BITOP NOT destkey key ,对给定 key 求逻辑非,并将结果保存到 destkey
    除了 NOT 操作之外,其他操作都可以接受一个或多个 key 作为输入
    当BITOP处理不同长度的字符串时,较短的那个字符串所缺少的部分会被看作 0
    空的key也被看作是包含0的字符串序列

    (3)BITCOUNT统计指定位区间上值为1的个数 字节
    bitpos key bit(0/1) start end > start end bit位的索引
    BITCOUNT key [start] [end] > start end Byte位的索引 正负方向

    案例:

    网站用户的上线次数统计(活跃用户)
    用户ID为key,天作为offset,上线置为1 366> 000000000000000
    366 /8 50Byte 16 50
    key: sean value: 11 1 000000000000000001010000000000000000
    ID为500的用户,今年的第1天上线、第30天上线
    SETBIT u500 1 1 1 0 0 000 0 …….1 0 00 0 > 365 /8 46 Byte
    SETBIT u500 30 1
    BITCOUNT sean 0 -1
    KYES u*

    按天统计网站活跃用户
    天作为key,用户ID为offset,上线置为1
    求一段时间内活跃用户数 500 / 8 366 * 63Byte
    SETBIT 20160601 15 1 1 1 0 1 00 00 00 0 00 00 0
    SETBIT 20160603 123 1 0 1 0 0 00 00 01 0 00 00 0
    SETBIT 20160606 123 1 0 1 0 0 00 00 01 0 00 00 0
    求6月1日到6月10日的活跃用户
    BITOP OR aaa 20160601 20160602 20160603 20160610
    BITCOUNT aaa 0 -1
    结果为2

  • 相关阅读:
    智慧光伏能源-园区光伏发电能源管控可视化
    无人值守,智能变电站可视化管控系统
    数字孪生,开启三维智慧园区管理新篇章
    智慧城市大数据运营中心 IOC 之 Web GIS 地图应用
    三维可视化数据中心机房监控管理系统
    打造绿色城市,数字孪生天然气站 3D 可视化
    绿色物流-智慧仓储监控管理 3D 可视化系统
    打造综合性智慧城市之朔州开发区 3D 可视化
    绿色城市之地下综合管廊3D可视化平台
    工业绿色环保发展:风力发电场管理监测可视化系统
  • 原文地址:https://www.cnblogs.com/cac2020/p/10524235.html
Copyright © 2020-2023  润新知