欢迎光临
感谢一路有你

Redis学习笔记(二)API

如果你对该文章中的内容有疑问/不解,可以点击此处链接提问
要注明问题和此文章链接地址 点击此处跳转
 

通用结构

  1. keys 键数
    keys * 显示出所有键数
    keys [pattern]
    keys 命令一般不再生产环境中使用
  2. dbsize 计算key的总数
    可在线上使用的
  3. exists key名 判断是否存在
    0不存在 1存在
  4. del key名 [key名…]
    0不存在 1成功
  5. expire key seconds 设置过期时间
    key在seconds秒后过期
    查询过期时间 ttl key
    去掉过期时间 persist key

    127.0.0.1:6379> set hello world
    OK
    127.0.0.1:6379> expire hello 20
    (integer) 1
    127.0.0.1:6379> ttl hello
    (integer) 15
    127.0.0.1:6379> get hello
    "world"
    127.0.0.1:6379> ttl hello
    (integer) -2//过期 -1不存在过期时间
    127.0.0.1:6379> get hello
    (nil)
  6. type key 类型

数据类型

数据结构与内部编码

单线程

类型

字符串类型string

哈希类型hash

相当于小的redis

列表类型list

特点:
有序
可重复
左右两边插入弹出
命令:

rpush key value1 value2… o(n) 从列表的右端插入值
lpush key value1 value2… o(n) 左端
linsert key before|after vlaue newValue o(n) 在list指定的值前|后插入newValue

lpop key o(1) 从左边弹出一个
rpop key o(1) 从右边弹出一个

ltrim key start end o(n) 按照索引范围修剪列表
ltrim key 1 5

lrange key start end (包含end) o(n) 获取列表指定索引范围的所有item
右->左 -1—
lindex key index o(n) 获取列表指定索引的item
llen key o(1) 获取列表长度

lset key index newValue o(n) 设置列表指定索引值为newValue

blpop key timeout o(1) lpop阻塞版本,timeout是阻塞超时时间,0为永不堵塞
brpop key timeout

实战:
1.微博列表
tip
1. lpush+lpop = stack
2. lpush+rpop = queue
3. lpush+ltrim = capped collection
4. lpush + brpop = message queue

集合类型set

特点:
无序/无重复/集合间的操作

sinter 两者的相同
sdiff 两者的不同
sunion 两者的全部
命令:
添加
sadd key element o(1) 向集合key中添加element(如果element已存在,添加失败)
删除
srem key element o(1) 将集合中element移除


scard user:1:follow (= 4) 计算集合的大小
sismember user:1:follow it (= 1(存在)) 判断it是否在集合中
srandmember user:1:follow count (= his) 从集合中挑选count个元素
spop user:1:follow (= sports) 从集合中随机弹出一个元素
smembers user:1:follow (= music his it) 获取集合中所有元素


集合间的命令
sdiff user:1:follow user :2:follow 差集
sinter user:1:follow user :2:follow 交集
sunion user:1:follow user :2:follow 并集
sdiff|sinter|sunion + store destkey… 将差交并的结果保存到destkey中

实战:
抽奖

有序集合类型zset


命令:
score可重复/element不能重复
添加
zadd key score element(可以是多对) o(logN) 添加score 和element
删除
zrem key element(可以是多对) o(1) 删除元素
zscore key element o(1) 返回元素的分数
zincrby key increScore element 增加或减少元素的分数
zincrby user:1:ranking 9 mike
zcard key o(1) 返回元素的个数


zrange key start end [WITHSCORES] o(log(n)+m) 返回指定索引范围内的升序元素[分值] n,总的个数 m,统计的个数
zrange user:1:ranking 1 3 withscores




实战:
排行榜

赞(0) 打赏
未经允许不得转载:王明昌博客 » Redis学习笔记(二)API
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏