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

第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 -通用命令

通用命令 数据结构和内部编码 单线程架构
在这里插入图片描述
在这里插入图片描述

keys

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
比较重的命令,所以一般不用
在这里插入图片描述

dbsize

在这里插入图片描述
内置了计数器,所以可以使用

exists

在这里插入图片描述

del

在这里插入图片描述

expire,ttl,persist

在这里插入图片描述
在这里插入图片描述
过期了,就是说没有这样的一个key了
在这里插入图片描述

type

在这里插入图片描述
返回类型
在这里插入图片描述

在这里插入图片描述

通用命令
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 数据结构和内部编码

在这里插入图片描述
在这里插入图片描述
list
linkedlist
ziplist

2-4 单线程

单线程为什么这么块?
1.纯内存(主要原因)
2.非阻塞IO
3.避免现场切换和竟态消耗
在这里插入图片描述
在这里插入图片描述
一瞬间只能执行一条命令

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

2-5 字符串

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

字符串键值结构

在这里插入图片描述
字符串类型
场景:缓存、计数器、分布式锁

get,set,del

在这里插入图片描述
在这里插入图片描述

incr,decr,incrby,decrby

不存在的话,初始值为0
在这里插入图片描述
在这里插入图片描述

实战

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

在这里插入图片描述
天然适合做计数器

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

在这里插入图片描述
一个用户访问app server(Java tomcat),首先会从Redis中去获取(内存)使用缓存系统,有就直接返回,否则的话去mysql中获取,然后不仅把数据返回,而且还要把数据缓存到Redis中。
在这里插入图片描述

3.分布式id生成器

在这里插入图片描述
三个服务希望每次获取到的id是自增的,三个服务并发的获取,不会重复
在这里插入图片描述

set,setnx,setxx

在这里插入图片描述
添加操作、更新操作
在这里插入图片描述

mget,mset

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
网络时间是大头

在这里插入图片描述
差缺补漏

getset,append,strlen

在这里插入图片描述
在这里插入图片描述
中文占两个字节

increbyfloat,getrange,setrange

在这里插入图片描述
在这里插入图片描述

字符串总结

在这里插入图片描述

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是属性值、
在这里插入图片描述
在这里插入图片描述

特点

在这里插入图片描述

重要API

hget,hset,hdel

在这里插入图片描述
在这里插入图片描述

hexists,hlen

在这里插入图片描述
将这个数量作为内部一个优化的值,所以O(1)
在这里插入图片描述

hmget,hmset

在这里插入图片描述
在这里插入图片描述

2-7 hash (2)

实战

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

在这里插入图片描述
pageview是一个属性
在string里面各个信息是分离的

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

在这里插入图片描述

hgetall,hvals,hkeys

在这里插入图片描述
在这里插入图片描述
小心使用hgetall

string vs hash

在这里插入图片描述
在这里插入图片描述

如何更新用户属性

string v1

在这里插入图片描述
json字符串
在这里插入图片描述
在这里插入图片描述

string v2

在这里插入图片描述
在这里插入图片描述

hash

在这里插入图片描述
在这里插入图片描述

比较

在这里插入图片描述
差缺补漏

hsetnx,hincreby,hincrbyfloat

在这里插入图片描述

总结

在这里插入图片描述

2-8 list(1)

特点 重要API 实战 查缺补漏

列表结构

在这里插入图片描述
有序的队列
在这里插入图片描述

在这里插入图片描述

特点

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

重要API

增rpush

在这里插入图片描述
在这里插入图片描述

lpush

在这里插入图片描述

2-9 list(2)

linsert

在这里插入图片描述

删lpop

在这里插入图片描述
在这里插入图片描述

rpop

在这里插入图片描述
在这里插入图片描述

lrem

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ltrim

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查lrange

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

lindex

在这里插入图片描述

llen

在这里插入图片描述

改lset

在这里插入图片描述
在这里插入图片描述

例子

在这里插入图片描述

实战

在这里插入图片描述
将信息流从新到旧的顺序进行排列
每10条进行一个分页
在这里插入图片描述
查缺补漏

blpop,brpop

阻塞的概念
在这里插入图片描述

TIPS

固定数量的列表
消息队列
在这里插入图片描述

2-10 set

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

集合结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

特点

无序
无重复
集合间操作

集合内API

sadd,srem

在这里插入图片描述

scard,sismember,srandmember,smembers

在这里插入图片描述

smembers

无序
小心使用

srandmember,spop

在这里插入图片描述

集合内实战

在这里插入图片描述

实战-抽奖系统

在这里插入图片描述
在这里插入图片描述

实战-赞,踩

在这里插入图片描述

实战-标签tag

在这里插入图片描述
在这里插入图片描述

集合间API

sdiff,sinter,sunion

在这里插入图片描述

集合间实战

共同关注

在这里插入图片描述

TIPS

在这里插入图片描述

2-11 zset

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

有序集合结构

在这里插入图片描述
分数:代表分来排序
本身集合是无序的

集合 vs 有序集合

在这里插入图片描述

列表vs有序集合

在这里插入图片描述

API

zadd

分数可以重复,但是元素不能重复
在这里插入图片描述
在这里插入图片描述

zrem

在这里插入图片描述
在这里插入图片描述

zscore

在这里插入图片描述

zincrby

在这里插入图片描述
在这里插入图片描述

zcard

在这里插入图片描述

例子

在这里插入图片描述

zrange

在这里插入图片描述

zrangebyscore

在这里插入图片描述

zcount

在这里插入图片描述

zremrangebyrank

在这里插入图片描述
在这里插入图片描述

zremrangebyscore

在这里插入图片描述
在这里插入图片描述

例子

在这里插入图片描述

实战

排行榜

在这里插入图片描述
在这里插入图片描述
查缺补漏

zrevrank

zrevrange

zrevrangebyscore

zinterstore

zunionstore

总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值