Redis数据淘汰算法

众所周知,Redis的所有数据都存储在内存中,但是内存是一种有限的资源,所以为了防止Redis无限制的使用内存,在启动Redis时可以通过配置项 maxmemory 来指定其最大能使用的内存容量。例如可以通过以下配置来设置Redis最大能使用 1G 内存:maxmemory 1G当Redis使用的内存超过配置的 maxmemory 时,便会触发数据
阅读全文

唯一ID生成原理与PHP实现-雪花算法

snowflake算法虽然PHP提供了一个生成唯一ID的函数uniqid(),但这个函数真的可以生成唯一ID吗?我们来看看uniqid()的具体实现:PHP_FUNCTION(uniqid){    ...    gettimeofday((struct timeval *) &t
阅读全文

Redis字典设计详解

Redis 是一个高性能的 key-value 内存数据库,与 Memcached 只能存储字符串数据类型不一样,它支持存储的数据结构类型包括:字符串(string)、链表(lists)、哈希表(hash)、集合(set)、有序集合(zset)等。Redis 的高性能得益于其 I/O事件驱动 模型,当然本文并不是讨论&
阅读全文

聊一聊项目中的软删除

有许多程序员,在知道一个所谓的概念之后,就非得将这个概念强加到自己的项目中就比如今天说的软删除,随随便便的一个数据表,都是加软删除.那么真的有必要吗?软删除的应用场景在哪?什么是软删除在我们之前写程序的时候,经常需要删除一条记录,删除语句则是: delete from table where condition=conditionValue这个时候
阅读全文

openresty搭建网站防火墙

在上一篇文章(diy 你的nginx-OpenResty)中,已经提到了如何安装一个openresty,现在我们可以通过开源项目 https://github.com/loveshell/ngx_lua_waf 实现一个简单的防火墙,例如:当我提交一个 select * from 疑似 sql注入的参数时,则会直接被拦截下载waf配置:wget解压文件并将./config.lua,./i
阅读全文

diy 你的nginx-OpenResty

OpenRestyOpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。安装openresty依赖库为:perl 5.6.1+, libreadline, libpcre, libsslce
阅读全文

关于接口权限控制以及rbac

分端实现权限控制最常见的接口权限控制就是分端形式了,不同的端实现不同的接口,一个用户登录后,只能访问这个端的接口,而不能去访问其他端的接口.例如:  商城有商家端,管理端,买家端,各个端之间账号互不相通.每个端对订单的操作逻辑也不一样 用户端只能新建,查看订单商家端只能查看订单,发货订单管理端只能查看订单代码结构大致为:├── Admin &nbs
阅读全文

最长公共子串- LCS 算法

最长子字符串算法#!/usr/bin/python # coding:utf-8 def action (str1,str2):     pass     #转为utf-8编码,一个中文字长度占用1     str1 = 
阅读全文

php hash算法类

<?php class Hash {     /**      * 加法hash      * additiveHash      * @p
阅读全文

亿级数据判断 bitmap-布隆过滤器

缓存穿透假设我们使用redis缓存了商品信息,当我们请求进来时,首先经过的是redis,当redis不存在时,才会去查找mysql.然后将mysql的数据缓存到redis.整个流程看上去是没有任何问题的,但当前端在同一时间发生了大量请求,同时去请求一个redis,数据库都不存在的商品id,会发生什么情况呢?1: 先去访问redis,发现redis不存在缓存2: 查询mysql.mysql不存在缓存
阅读全文
首页 12345 末页 共 231 条记录
  • 本站由白俊遥博客程序搭建
    © 2017-1-17 php20.cn 版权所有 ICP证:闽ICP备17001387号
  • 联系邮箱:1067197739@qq.com