《Redis开发与运维》学习第二章

第二章 API的理解和使用

========================================================================================================

《Redis开发与运维》学习第二章_第1张图片2.1.1全局命令
1 查看所有键
keys *
2 键总数
dbsize
3 检查键是否存在
exists key
4 删除键
del key
5 键过期 expire key seconds 例如:expire hello 10
Redis支持对键添加过期时间,当超过过期时间后,会自动删除。
ttl 命令会返回键的剩余过期时间。
6 键的数据类型
type key

2.1.2数据结构和内部编码
记住一个查看内部编码的命令:object encoding

2.1.3单线程架构重在理解如何实现
Redis单线程机制时开发和运维人员使用和理解Redis的核心之一。
![在这里插入图片描述](https://img-blog.csdnimg.cn/84e1f10ab06345a4b5c7f9ae2aeb2766.png?x-oss-process=image为什么单线程还这么快???

1 纯内存访问
2 非阻塞I/O,Redis使用epoll作为I/O多路复用技术。
3 单线程避免了线程切换和竟态产生的消耗。
4 数据结构简单,对数据进行操作时简单。

为什么Redis时单线程的???

《Redis开发与运维》学习第二章_第2张图片《Redis开发与运维》学习第二章_第3张图片《Redis开发与运维》学习第二章_第4张图片

下面介绍Redis五大数据结构的详细内容:

第一大类:字符串类型

1 常用命令
1)设置值
set key value 例如:set hello world
2)获取值
get key
3)批量设置值
mset key value
4)批量获取值
mget key
redis一次命令的时间:命令时间+网络时间

第二大类:哈希

========================================================================================================

在Redis中,哈希类型值键值本身又是一个键值对结构,形如value={field1,value1},{fieldN,valueN}.
《Redis开发与运维》学习第二章_第5张图片在这里插入图片描述基础命令:
1)设置值
hset key field value 例如:为user:1添加一对field-value hset user:1 name Tom
2)获取值
3)删除field
hdel key field
4)计算field的个数
hlen key
5)批量设置、获取field-value
hmget key field
hmset key field value
6)判断field是否存在
hexists key field
7)获取所有的field
hkeys key
8)获取所有的value
hvals key
9)获取所有的field-value
hgetall key
在这里插入图片描述10)计算value的字符串长度
hstrlen key field
哈希类型的内部编码方式:ziplist(压缩列表) hashtable(哈希表)
**

第四大类;列表类型

=======================================================================================================
《Redis开发与运维》学习第二章_第6张图片基础命令:
1)添加操作
rpush/lpush key value 左插/右插
linsert key before/after pivot value 前插/后插
2)查找操作
1 查找指定范围的元素列表
lrange key start end
2 获取列表指定索引下标的元素
lindex key index
3获取列表长度
llen key
3)删除操作
1 lpop/rpop key
从列表左/右侧弹出元素
2删除指定元素
lrem key count value
4)修改操作
修改指定索引下标的元素
lset key index newvalue

第五大类:集合

========================================================================================================
集合set类型不允许有重复元素,并且集合中的元素是无序的,不能通过索引下标获取元素。

基础命令:
按照集合内和集合间两个维度介绍
1 集合内操作
1)添加元素
sadd key element
2)删除元素
srem key element
2 集合间操作
假设存在两个集合;user:1:follow 和user:2:follow
1)求多个集合的交集
sinter key 例如:sinter user:1:follow user:2:follow
2)求多个集合的交集
sunion key 例如:sunion user:1:follow user:2:follow:
3)求多个集合的差集
sdiff key

**

键管理:

========================================================================================================
按照单个键、遍历键、数据库管理来介绍一些常用命令
**
单个键管理****
1 键重命名
rename key newkey
2 随机返回一个键
randomkey
3 键过期
expire key seconds
ttl 观察剩余过期时间
4 迁移键
三种方式:move dump+restore migrate
笔者建议使用migrate进行键值迁移。

遍历键管理
keys scan
1全量遍历键
keys *
2渐进式遍历
scan
《Redis开发与运维》学习第二章_第7张图片《Redis开发与运维》学习第二章_第8张图片数据库管理
1 切换数据库
select dbIndex
Redis默认16个数据库 :database 16,各数据库之间是隔离的。
慎重使用:flushdb flushall !!!

本章重点回顾

你可能感兴趣的:(数据库,redis,运维,缓存,数据库开发)