第2章 API的理解和使用
全面介绍了Redis提供的5种数据结构字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(zset)的数据模型、常用命令、典型应用场景。同时本章还会对Redis的单线程处理机制、键值管理做一个全面介绍,通过对这些原理的理解,听众可以在合适的应用场景选择合适的数据结构。 …
2-1 -课程目录
2-2 -通用命令
2-3 数据结构和内部编码
2-4 单线程
2-5 字符串
2-6 hash (1)
2-7 hash (2)
2-8 list(1)
2-9 list(2)
2-10 set
2-11 zset

第2章 API的理解和使用
全面介绍了Redis提供的5种数据结构字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(zset)的数据模型、常用命令、典型应用场景。同时本章还会对Redis的单线程处理机制、键值管理做一个全面介绍,通过对这些原理的理解,听众可以在合适的应用场景选择合适的数据结构。 …

2-1 -课程目录

通用命令
数据结构和内部编码
单线程架构

2-2 -通用命令

通用命令 数据结构和内部编码 单线程架构
Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

keys

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API
比较重的命令,所以一般不用
Redis从入门到高可用分布式实践2API

dbsize

Redis从入门到高可用分布式实践2API
内置了计数器,所以可以使用

exists

Redis从入门到高可用分布式实践2API

del

Redis从入门到高可用分布式实践2API

expire,ttl,persist

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API
过期了,就是说没有这样的一个key了
Redis从入门到高可用分布式实践2API

type

Redis从入门到高可用分布式实践2API
返回类型
Redis从入门到高可用分布式实践2API

Redis从入门到高可用分布式实践2API

通用命令
mset /mget 批量设置 减少了网络时间 一般而言=网络时间+命令时间
sadd myset a b c d e 将一个或多个成员元素加入到集合中
keys * 遍历 生产不适用 热备从节点 scan
dbsize 计算key的总数
exists key 检查key是否存在
del key[key…] 删除键,删除多个键
expire key seconds key在seconds秒后过期
ttl key 查看key剩余的过期时间
persist key 去掉key的过期时间
type key 返回key的类型

2-3 数据结构和内部编码

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API
list
linkedlist
ziplist

2-4 单线程

单线程为什么这么块?
1.纯内存(主要原因)
2.非阻塞IO
3.避免现场切换和竟态消耗
Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API
一瞬间只能执行一条命令

总结“
1.一次只运行一条命令
2.拒绝长(慢)命令
keys,flushall,flushdb,show lua script,mutil/exec,operate big value(collection)
3.其实不是单线程
fysnc file descriptor,close file descriptor

2-5 字符串

结构和命令 内部编码 快速实战 查缺补漏

字符串键值结构

Redis从入门到高可用分布式实践2API
字符串类型
场景:缓存、计数器、分布式锁

get,set,del

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

incr,decr,incrby,decrby

不存在的话,初始值为0
Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

实战

1.记录网站每个用户个人主页的访问量

Redis从入门到高可用分布式实践2API
天然适合做计数器

2.缓存视频的基本信息(数据源在MySQL中)伪代码

Redis从入门到高可用分布式实践2API
一个用户访问app server(Java tomcat),首先会从Redis中去获取(内存)使用缓存系统,有就直接返回,否则的话去mysql中获取,然后不仅把数据返回,而且还要把数据缓存到Redis中。
Redis从入门到高可用分布式实践2API

3.分布式id生成器

Redis从入门到高可用分布式实践2API
三个服务希望每次获取到的id是自增的,三个服务并发的获取,不会重复
Redis从入门到高可用分布式实践2API

set,setnx,setxx

Redis从入门到高可用分布式实践2API
添加操作、更新操作
Redis从入门到高可用分布式实践2API

mget,mset

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API
网络时间是大头

Redis从入门到高可用分布式实践2API
差缺补漏

getset,append,strlen

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API
中文占两个字节

increbyfloat,getrange,setrange

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

字符串总结

Redis从入门到高可用分布式实践2API

incr key #自增1

decr key #自减1

incrby key k #自增k

decrby key k #自减k

set key value #不管key是否存在,都设置

setnx key value #key不存在,才设置

set key value xx #key存在,才设置

getset key newvalue #set key newvalue并返回旧的value

append key value #将value追加到旧的value

strlen key #返回字符串的长度

incrbyfloat key 3.5 #增加key对应的值3.5

getrange key start end #获取字符串指定下标的所有值

setrange key index value #设置指定下标所对应的值

2-6 hash (1)

哈希
特点 重要API hash vs string 差缺补漏

哈希键值结构

filed是属性值、
Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

特点

Redis从入门到高可用分布式实践2API

重要API

hget,hset,hdel

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

hexists,hlen

Redis从入门到高可用分布式实践2API
将这个数量作为内部一个优化的值,所以O(1)
Redis从入门到高可用分布式实践2API

hmget,hmset

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

2-7 hash (2)

实战

1.记录网站每个用户个人主页的访问量

Redis从入门到高可用分布式实践2API
pageview是一个属性
在string里面各个信息是分离的

2.缓存视频的基本信息(数据源在MySQL中)伪代码

Redis从入门到高可用分布式实践2API

hgetall,hvals,hkeys

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API
小心使用hgetall

string vs hash

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

如何更新用户属性

string v1

Redis从入门到高可用分布式实践2API
json字符串
Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

string v2

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

hash

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

比较

Redis从入门到高可用分布式实践2API
差缺补漏

hsetnx,hincreby,hincrbyfloat

Redis从入门到高可用分布式实践2API

总结

Redis从入门到高可用分布式实践2API

2-8 list(1)

特点 重要API 实战 查缺补漏

列表结构

Redis从入门到高可用分布式实践2API
有序的队列
Redis从入门到高可用分布式实践2API

Redis从入门到高可用分布式实践2API

特点

有序
可以重复
左右两边插入弹出

重要API

增rpush

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

lpush

Redis从入门到高可用分布式实践2API

2-9 list(2)

linsert

Redis从入门到高可用分布式实践2API

删lpop

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

rpop

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

lrem

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

ltrim

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

查lrange

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

lindex

Redis从入门到高可用分布式实践2API

llen

Redis从入门到高可用分布式实践2API

改lset

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

例子

Redis从入门到高可用分布式实践2API

实战

Redis从入门到高可用分布式实践2API
将信息流从新到旧的顺序进行排列
每10条进行一个分页
Redis从入门到高可用分布式实践2API
查缺补漏

blpop,brpop

阻塞的概念
Redis从入门到高可用分布式实践2API

TIPS

固定数量的列表
消息队列
Redis从入门到高可用分布式实践2API

2-10 set

特点 集合内API和实战 集合间API实战

集合结构

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

特点

无序
无重复
集合间操作

集合内API

sadd,srem

Redis从入门到高可用分布式实践2API

scard,sismember,srandmember,smembers

Redis从入门到高可用分布式实践2API

smembers

无序
小心使用

srandmember,spop

Redis从入门到高可用分布式实践2API

集合内实战

Redis从入门到高可用分布式实践2API

实战-抽奖系统

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

实战-赞,踩

Redis从入门到高可用分布式实践2API

实战-标签tag

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

集合间API

sdiff,sinter,sunion

Redis从入门到高可用分布式实践2API

集合间实战

共同关注

Redis从入门到高可用分布式实践2API

TIPS

Redis从入门到高可用分布式实践2API

2-11 zset

有序集合
特点 重要API 实战 查缺补漏

有序集合结构

Redis从入门到高可用分布式实践2API
分数:代表分来排序
本身集合是无序的

集合 vs 有序集合

Redis从入门到高可用分布式实践2API

列表vs有序集合

Redis从入门到高可用分布式实践2API

API

zadd

分数可以重复,但是元素不能重复
Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

zrem

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

zscore

Redis从入门到高可用分布式实践2API

zincrby

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

zcard

Redis从入门到高可用分布式实践2API

例子

Redis从入门到高可用分布式实践2API

zrange

Redis从入门到高可用分布式实践2API

zrangebyscore

Redis从入门到高可用分布式实践2API

zcount

Redis从入门到高可用分布式实践2API

zremrangebyrank

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

zremrangebyscore

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API

例子

Redis从入门到高可用分布式实践2API

实战

排行榜

Redis从入门到高可用分布式实践2API
Redis从入门到高可用分布式实践2API
查缺补漏

zrevrank

zrevrange

zrevrangebyscore

zinterstore

zunionstore

总结

Redis从入门到高可用分布式实践2API

相关文章:

  • 2021-08-21
  • 2021-06-17
  • 2021-10-29
  • 2021-07-27
  • 2022-12-23
  • 2021-09-28
  • 2021-10-03
  • 2021-08-28
猜你喜欢
  • 2021-12-13
  • 2021-09-13
  • 2021-07-16
  • 2021-12-16
  • 2021-11-13
  • 2021-08-05
  • 2021-10-28
相关资源
相似解决方案