redis常用的操作

基本数据结构

在这里插入图片描述

string字符串

1) 字符串的值既可以存储文字数据,又可以存储二进制数据
2)MSET\MGET 命令可以有效地减少程序的网络通信次数,从而提高程序的执行效率
3)redis用户可以定制命名格式来提升redis数据的可读性并避免冲突。

应用举例:
缓存热门图片:
set redis-log.jpg redis-log-data

存储文章
文章长度计数功能、文章摘要、文章计数
文章长度:strlen article:10086:content
文章摘要: getrange article:10086:content 0 5
文章阅读计数:incr article:10086:count

限速器
防止网站内容被网络爬虫疯狂抓取,限制每个 ip 地址在固定的时间段内能够访问的页面数量,比如1 分钟最多只能访问 30 个页面

防止用户的账号遭到暴力破解,如果同个账号连续好几次输入错误的密码,则限制账号的登录,只能等 30 分钟后再次登录,比如设置 3 次

(1)set max:execute:times 3 防止暴力破解
(2)密码出错时 decr max:execute:times
(3)当 max:execute:times 的值小于 0 时则禁止登录,并可以设置
setex login:error:darren 1800 “Incorrect password”
然后使用 ttl login:error:darren 检测对应剩余的时间

Hash 散列

在这里插入图片描述

Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。Redis 中每个 hash 可以存储
在这里插入图片描述

键值对(40 多亿)
在这里插入图片描述

散列的最大优势,只需要在数据库里面创建一个键,就可以把任意多的字段和值存储到散列里面。

但是字符串键的优势是功能更加丰富,而且可以针对一条数据进行操作,hash的话只能针对一整个键的值操作

比如我们要设置键过期时间,键过期时间是针对整个键的,用户无法为散列中的不同字段设置不同的过期时间,所以当一个散列键过期的时候,他包含的所有字段和值都会被删除。
与此相反,如果用户使用字符串键存储信息项,就不会遇到这样的问题——用户可以为每个字符串键分别设置不同的过期时间,让它们根据实际的需要自动被删除

适用场景对比:

  1. 如果程序需要为单个数据项单独设置过期的时间,那么使用字符串键。
  2. 如果程序需要对数据项执行诸如 SETRANGE、GETRANGE 或者 APPEND 等操作,那么优先考虑使用字符串键。
    当然,用户也可以选择把数据存储在散列中,然后将类似 SETRANGE、GETRANGE 这样的操作交给客户端执行。
  3. 如果程序需要存储的数据项比较多,并且你希望尽可能地减少存储数据所需的内存,就应该优先考虑使用散列键
  4. 如果多个数据项在逻辑上属于同一组或者同一类,那么应该优先考虑使用散列键。

List 列表

在这里插入图片描述

set集合

在这里插入图片描述

Zset 有序集合在这里插入图片描述

Redis发布订阅

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

redis事务

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

redis管道技术

在这里插入图片描述
管道技术最显著的优势就是提高了redis服务的性能

tcp抓包命令

sudo tcpdump -i any dst host 127.0.0.1 and port 7369

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值