Redis笔记(重点)

Redis是一种高性能的键值对数据库,支持五种数据类型:String、List、Hash、Set和ZSet。常用于数据缓存、计数器、限速器等场景。NoSql数据库强调扩展性和高性能,不保证ACID特性。文章简述了Redis的基本数据类型及其在不同场景的应用。
摘要由CSDN通过智能技术生成

Redis重点内容(一)

提示:精力有限,暂不记录分布式相关内容
例如:第一章 Python 机器学习入门之pandas的使用


提示:不喜勿喷,谢谢配合。


前言

Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。
特征:

  1. 数据间没有必然的关联关系
  2. 内部采用单线程机制进行工作
  3. 高性能。官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。
  4. 多数据类型支持
    ◆ 字符串类型 string
    ◆ 列表类型 list
    ◆ 散列类型 hash
    ◆ 集合类型 set
    ◆ 有序集合类型 zset/sorted_set
  5. 支持持久化,可以进行数据灾难恢复

提示:以下是本篇文章正文内容

一、NoSql

众所周知,Redis是NoSql的代表之一。

NoSQL仅仅是一个概念,泛指非关系型的数据库,区别于关系型数据库,NoSql型数据库不保证关系数据的ACID特性。

NoSQL有如下优点:易扩展,NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。无形之间也在架构的层面上带来了可扩展的能力。大数据量,高性能,NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。

二、Redis

五种基本数据类型及应用场景

String
数据缓存: 服务器首先从 Redis 中获取数据,如果缓存层中没有,则从数据库中获取后先放入缓存再返回给应用服务器。
计数器: 在 Redis 中写入一个 value 为数值型的 key 作为平台计数器、视频播放计数器等。每个有效客户端访问一次,或视频每播放一次,直接修改 Redis 中的计数器,然后再以异步方式持久化到其它数据源中。
限速器: 为了防止 DoS(拒绝服务)攻击,一般都会限制 IP不能在一秒内访问超过 x 次。而Redis 可以可以结合 key 的过期时间与 incr 命令来完成限速功能,充当限速器。代码如下

// 客户端每提交一次请求,都会执行下面的代码
// 等价于 set ip 1 ex 60 nx
// 指定新 ip 作为 key 的缓存过期时间为 60 秒
int x = 10;
Boolean exists = redis.set(ip, 1, “EX 60, “NX”);
if(exists != null || redis.incr(ip) <= x) {
 // 通过
} else {XXXXXXXX}

Hash
存储对象:。key 为对象名称,value 为描述对象属性的 Map,对象属性的修改在 Redis 中就可直接完成。不像 String 型 Value 存储对象,String对象是序列化过的,例如序列化为 JSON 串,对对象属性值的修改需要先反序列化为对象后再修改,修改后再序列化为 JSON 串后写入到 Redis。

List
主要是通过构建不同的数据结构来实现相应的业务功能。
栈: 通过 lpush + lpop 可以实现栈数据结构效果:先进后出。通过 lpush 从列表左侧插入数据,通过 lpop 从列表左侧取出数据。
队列: 通过 lpush + rpop 可以实现队列数据结构效果:先进先出。通过 lpush 从列表左侧插入。
数据,通过 rpop 从列表右侧取出数据。

Set
主要是通过构建不同的数据结构来实现相应的业务功能。
黑白名单
服务器中要设置用于访问控制的黑名单。如果直接将黑名单写入服务器的配置文件,那么存在的问题是,无法动态修改黑名单。此时可以将黑名单直接写入 Redis,只要有客户端来访问服务器,服务器在获取到客户端 IP后先从 Redis的黑名单中查看是否存在该 IP,如果存在,则拒绝访问,否则访问通过。

ZSet
排行榜: 将播放量作为 score,将
作品 id 作为 member,将用户评价积分或销售量作为 score,将商家 id 作为 member。使用zincrby 增加排序 score,使用 zrevrange 获取 Top 前几名,使用 zrevrank 查询当前排名,使用zscore 查询当前排序 score 等。
``

总结

例如:以上就是今天记录的内容,本文仅仅简单介绍了NoSql和Redis的五种基本数据类型的使用场景,下一篇详细记录Redis持久化方式和配置文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值