Redis常见命令

  • 设置字符串值

  • 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 ...]

  • 注意:这是原子操作

  • set s1 abc

  • set s2 12

  • set se abc ex 15

  • mset s3 3 s4 4 s5 5

  • msetnx s5 A5 s6 6 NX 键不存在,才能设置、

  • 过期

  • Redis中可以给Key设置一个生存时间(秒或毫秒),当达到这个时长后,这些键值将会被自动删除

  • 设置多少秒或者毫秒后过期

  • EXPIRE key seconds

  • PEXPIRE key milliseconds

  • 设置在指定Unix时间戳过期

  • EXPIREAT key timestamp

  • PEXPIREAT key milliseconds-timestamp

  • 删除过期

PERSIST key

 

  • 生存时间

  • Time To LiveKey的剩余生存时间

  • 查看剩余生存时间

  • TTL key

  • PTTL key

  • key存在但没有设置TTL,返回-1
  • key存在,但还在生存期内,返回剩余的秒或者毫秒

key曾经存在,但已经消亡,返回-2(2.8版本之前返回-1)

  • set se abc ex 15
  • ttl s6
  • expire s6 60
  • pttl s6

  • persist s6

  • pttl s6

  • EXPIREAT cache 1355292000

  • PEXPIREAT mykey 1555555555005

  • 查找键

  • KEYS pattern

  • pattern取值

  • * 任意长度字符

  • ? 任意一个字符

  • [] 字符集合,表示可以是集合中的任意一个

  • keys s*

  • keys s?

  • keys s[13]

  • keys *

keys ??

  • 键类型

  • TYPE key

  • 键是否存在

  • EXISTS key

  • 键重命名

  • RENAME key newkey

  • RENAMENX key newkey

  • 键删除

  • DEL key [key ...]

 

  • 获取值

  • GET key

  • 获取多个给定的键的值

  • MGET key [key ...]

  • 返回旧值并设置新值

  • GETSET key value

  • 如果键不存在,就创建并赋值

  • 字符串长度

STRLEN key

  • 追加字符串

  • APPEND key value

  • 如果键存在就追加;如果不存在就等同于SET key value

  • 获取子字符串

  • GETRANGE key start end

  • 索引值从0开始,负数表示从字符串右边向左数起,-1表示最有一个字符

  • 覆盖字符串

  • SETRANGE key offset value

  • APPEND s6 123

  • getrange s1 1 2

  • getrange s1 0 -1

  • getrange s1 -2 -1

  • getrange s1 0 10000

  • SETRANGE s6 3 e

  • SETRANGE s6 3 efghijk

  • SETRANGE newkey 5 hello

SETRANGE s6 3 efghijk

 

 

  • 步长1的增减

  • INCR key

  • DECR key

  • 字符串值会被解释成64位有符号的十进制整数来操作,结果依然转成字符串

  • 步长增减

  • INCRBY key decrement

  • DECR key decrement

  • 字符串值会被解释成64位有符号的十进制整数来操作,结果依然转成字符串
  • 位图不是真正的数据类型,它是定义在字符串类型中

  • 一个字符串类型的值最多能存储512M字节的内容
  • 位上限:2^(9+10+10+3)=2^32b

  • 设置某一位上的值

  • SETBIT key offset value

  • offset偏移量,从0开始

  • value不写,默认是0

  • 获取某一位上的值

  • GETBIT key offset

  • 返回指定值0或者1在指定区间上第一次出现的位置

  • BITPOS key bit [start] [end]

  • set str1 ab

  • setbit str1 6 1

  • setbit str1 7 0

  • get str1

  • 这个结果是什么?

  • 位操作

  • 对一个或多个保存二进制位的字符串 key 进行位元操作,并将结果保存到 dteskey

  • 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 的字符串序列

  • 思考:a位或b是什么?

  • 统计指定位区间上值为1的个数

  • BITCOUNT key [start] [end]

  • 从左向右从0开始,从右向左从-1开始,注意官方startend是位,测试后是字节

  • BITCOUNT testkey 0 0表示从索引为0个字节到索引为0个字节,就是第一个字节的统计

  • BITCOUNT testkey 0  -1等同于BITCOUNT testkey

  • 最常用的就是 BITCOUNT testkey

  • Redis的二进制位
  • set s1 ab
  • bitcount s1
  • bitcount s1 0 0
  • bitcount s1 1 1
  • set ch
  • bitcount ch
  • bitcount ch 2 2

 

  • 登录不同的库

  • redis-cli --help

  • redis-cli -n 2

  • 清除当前库数据

  • FLUSHDB

  • 清除所有库中的数据

FLUSHALL

  • 网站用户的上线次数统计(活跃用户)

用户ID为key,天作为offset,上线置为1

ID为500的用户,今年的第1天上线、第30天上线

SETBIT u500 1 1

SETBIT u500 30 1

BITCOUNT u500

KYES u*

  • 按天统计网站活跃用户

天作为key,用户ID为offset,上线置为1

求一段时间内活跃用户数

SETBIT 20160602 15 1

SETBIT 20160601 123 1

SETBIT 20160606 123 1

求6月1日到6月10日的活跃用户

BITOP OR 20160601-10 20160601 20160602 20160603 20160610

BITCOUNT 20160601-10

结果为2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值