jxzssy

Redis系列8:Bitmap实现亿万级数据计算

1 前言 我们在第一篇 深刻理解高性能Redis的本质 的时候就介绍过Redis的几种基本数据结构,它是基于不同业务场景而设计的: 动态字符串(REDIS_STRING):整数(REDIS_ENCODING_INT)、字符串(REDIS_ENCODING_RAW) 双端列表(REDIS_ENCODING_LINKEDLIST) 压缩列表(REDIS_ENCODING_ZIPLIST) 跳跃表(REDIS_ENCODING_SKIPLIST) 哈希表(REDIS_HASH) 整数集合(REDIS_ENCODING_INTSET) 除了这常见数据类型,还有一些不常用的数据类型,如 BitMap、G…

Redis系列9:Geo 类型赋能亿级地图位置计算

Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5:深入分析Cluster 集群模式 追求性能极致:Redis6.0的多线程模型 追求性能极致:客户端缓存带来的革命 Redis系列8:Bitmap实现亿万级数据计算 1 前言 我们在第一篇 深刻理解高性能Redis的本质 的时候就介绍过Redis的几种基本数据结构,它是基于不同业务场景而设计的: 动态字符串(REDIS_STRING):整数(REDIS_ENCODING_INT)、字符串(REDIS…

使用 cookie 的身份验证和授权

前言 在上一章 学学 dotnet core 中的身份验证和授权-1-概念 中,我们大致明白了身份验证和授权两者的关系。那么在本文中,我们将使用 cookie 来做一个简单的身份验证和授权。 本文中我使用的是 .net core6,并用 MiniApi 的方式编写。 下发凭证 在上一章中,我们得知客户端必须先从服务器上得到凭证,才能够这个凭证去进行身份验证和授权。所以我们的第一步就是:从服务器得到凭证。 这种下发凭证的接口一般是登录接口,所以,我们来弄一个登录的接口吧。 在 MiniApi 中写一个 Login 接口: [crayon-68b419aac7bf6894286739...

跨域问题和使用 cookie 的限制

前言 在我的文章 使用 cookie 的身份验证和授权 的最后,讲到了跨域问题,这篇文章就简单介绍跨域的相关知识,并说明在 net core 中怎么设置跨域。 使用的版本为 net6,并使用 MiniApi 演示。 XSS 攻击 跨域的由来不得不提到 XSS 攻击。 全名:Cross-site scripting(跨站脚本攻击)。这是一种安全漏洞,攻击者可以利用这种漏洞在网站上注入恶意的客户端代码。若受害者运行这些恶意代码,攻击者就可以突破网站的访问限制并冒充受害者。简单地说,就是我可以在你的网站偷偷上运行我的代码,那有多危险。 为了应对这种情况,便有了浏览器的同源策略。 同源策略 这个策略是…

React简单教程-2-ts和组件参数

前言 在上一章:React 简单教程-1-组件 我们知道了 React 的组件是什么,长什么样,用 js 和 HTML 小小体验了一下组件。在这一章,我们将使用 typescript(简称 ts) 来代替 js,这种语法的文件名后缀是 tsx。 我强烈建议使用 ts 来开发 React,要说 ts 比 js 好在哪里?这么说,js 唯一不好的地方就是它只能用 js 来写。 如果你不会 ts,那么你可以稍微地学习一下,官网:typescript,能够看懂一些基本语法就可以了,我们会在编写代码的过程中慢慢学习。 新建 React-ts 项目 现在,忘了我们在上一章创建的项目吧,我们要...

React简单教程-3-样式

前言 在上一章 React 简单教程-2-ts 和组件参数 中我们新建的子组件 Displayer 没有样式,显得平平无奇,这一篇我们将给他美化一下。 CSS 文件 一般的做法,是在你的组件级目录下新建一个和组件同名的 CSS 文件。如,我们的组件是 displayer.tsx,我们就在同级目录下新建一个 displayer.css,然后在组件 Displayer 中直接引入这个文件: 我们先写下一个样式,该样式将背景变成灰色: 然后在组件中使用样式...