前置环境 安装Redis 新建一个ThinkPHP6项目 ThinkPHP使用Redis 安装 Redis 扩展 # 在项目目录下执行如下代码,安装redis依赖 compos
原创
2024-04-20 19:44:20
131阅读
简单介绍:消息队列中间件是大型系统中的重要组件,已经逐渐成为企业系统内部通信的核心手段。它具有松耦合、异步消息、流量削峰、可靠投递、广播、流量控制、最终一致性等一系列功能,已经成为异步RPC的主要手段之一。 大白话:消息队列有两个角色和一个容器,角色分别为生产者(负责发布任务)和消费者(负责执行任务),容器这是用来存放/堆积生产者发布的任务,将发布和执行两个步骤分开且互不影响。 
转载
2023-12-19 20:12:47
21阅读
源码地址:https://github.com/Tinywan/PHP_Experience 问题分析 问题一:要求日志最好入库;但是,直接入库mysql确实扛不住,批量入库没有问题,done。【批量入库和直接入库性能差异】 问题二:批量入库就需要有高并发的消息队列,决定采用redis list 仿
原创
2021-06-04 23:00:26
318阅读
源码地址:https://github.com/Tinywan/PHP_Experience问题分析问题一:要求日志最好入库;但是,直接入库m...
原创
2023-02-21 09:40:56
210阅读
1. redis和memcached的区别redis支持的数据结构更加丰富,memcached操作比较复杂memcached不支持原生的集群模式,redis是支持的memcached不支持数据持久化,redis有aof和rdb2. redis为什么是单线程的redis是单线程,通过IO多路复用提高单核的处理能力单线程处理起来比较简单单线程可以避免大量的线程切换,竞争带来的资源消耗。redis是纯内
转载
2023-06-09 22:02:53
311阅读
设计成单线程的原由官方表示,因为redis是基于内存的操作,cpu不是redis的瓶颈,redis的瓶颈最有可能是机器内存的大小或者网络带宽。而且官方提供的数据是可以达到100000+的qps(每秒内查询次数),这个数据并不比采用单进程多线程 memcached 差!所以官方采用来单进程单线程的设计。支持高并发的原由1、完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。2、采用单线程,保证了每
转载
2023-06-09 22:15:38
73阅读
Redis一般用于做数据库的缓存,作用: 1. 提升性能 2. 为数据库挡住大量并发 基本使用流程: 1. 先从Redis查询数据 2. Redis存在就直接返回 3. Redis没有再查询数据库 4. 数据库有就保存到Redis中,返回数据 5. 数据库没有就返回空 Redis在高并发情况下可能出现的问题: Redis在高
转载
2023-08-30 09:14:53
111阅读
用到的高并发模块:gevent一、给redis中写入8万个key。每个key的大小约12k#filename:redis1.py
import redis
import os,time,threading
import uuid
import random
# pool =redis.ConnectionPool(host='192.168.1.3',port=6379)
# r = redis
转载
2023-05-25 13:55:57
106阅读
Redis是一个key,value的内存数据库,1秒的并发数约为10万.常识: 1.硬盘 (1)寻址 :毫秒 (2)带宽: M/G 2.内存 (1)寻址: 纳秒 (2)带宽:优于磁盘秒,毫秒,微秒,纳秒Redis采用NIO(多路复用)访问,是一个单线程数据库 Redis的5大基本类型String,List,hash,set ,sorted_set ,是针对value连接客户端redis-cli -
转载
2023-07-04 11:35:06
115阅读
对Redis高并发的理解 毕业工作两年多了,一直没有接触过高并发的项目,即便是现在接触的集群项目,也几乎涉及不到高并发的处理,希望在以后的工作中能够接触并学习。 项目中用到了Redis+哨兵的集群,用来缓存会话和数据信息,因为使用场景的问题,也几乎涉及不到
转载
2023-05-30 16:42:06
143阅读
redis锁处理并发问题redis锁处理高并发问题十分常见,使用的时候常见有几种错误,和对应的解决办法,在此进行自己的总结和整理。set方式setnx方式setnx+getset方式set方式 作为redis小白,一开始能想到的使用redis加锁的方式就是set。 加锁:redis中set一个值,set(lock,1); 并发处理:其他线程必须拿到这个值,
转载
2023-05-29 10:10:35
346阅读
author:he qq:760863706 tp:3.2.3 date:2018-10-19tp框架开发的项目,需求是想控制某项业务同一时刻的访问量,用redis锁机制来实现目的,在tp公共方法中创建公共函数 concurrence/**
*redis控制并发
**/
function concurrence(){
//实例化redis
$redis = new \Redis(
转载
2023-05-29 09:09:26
109阅读
Redis作为一个基于内存的缓存系统,一直以高性能著称,因没有上下文切换以及无锁操作,即使在单线程处理情况下,读速度仍可达到11万次/s,写速度达到8.1万次/s。但是,单线程的设计也给Redis带来一些问题:只能使用CPU一个核;如果删除的键过大(比如Set类型中有上百万个对象),会导致服务端阻塞好几秒;QPS难再提高。针对上面问题,Redis在4.0版本以及6.0版本分别引入了Lazy Fre
转载
2023-05-25 11:02:34
69阅读
概述之前对“高性能、高可用、高并发”,只知其名不知其意,直到在知乎上看到redis系列文章,才豁然开朗,对redis的三高可以这么理解。说明高性能,指的是查询快。
redis是c语言实现,与其他语言相比,在实现语言层面性能高;redis是内存数据库,而传统的关系型数据库是磁盘文件读写,所以redis读写快;单线程,无上下文切换损耗,也不需要线程间同步,在单核cpu上,性能高,如果服务器是多核
转载
2023-07-07 11:03:01
170阅读
http://effective.blog.51cto.com/8296150/1671743 现在的计算机大都是多核的cpu,意味着可以并行执行多个进程.如果这多个运行的进程对同一份数据进行读写操作,那么就有可能出现两个或者多个进程读到的都是老的数据,这种情况下,再进行写入操作之后就会有一些进程写入的数据被覆盖掉,就导致最终的结果错误.这份数据对于这些进程来说就是临界区. r
转载
2023-06-13 23:45:46
126阅读
redis的双写问题一般都是出现在高并发的情况下,什么是双写问题呢?就拿库存服务来说。1、redis双写redis双写问题就是当前端有一个修改数据请求发送到库存服务时,库存服务会将redis中的缓存进行删除,如果这时由于网络问题停顿了一秒(象征一下),恰恰有一个查询请求访问库存服务,库存服务就会去拉取redis中的数据,而这是由于redis中的缓存已经进行了删除,所以redis就会去数据库拉取数据
转载
2023-05-25 10:57:10
70阅读
项目背景:1、新增问题件工单,工单中有工单编码字段,工单编码字段的规则为 “WT”+yyyyMMdd+0000001。2、每天的工单生成量是30W,所以会存在并发问题解决思路:1、首先乐观的认为redis不会宕机,对应的缓存不会被清除(除非人为操作,人为操作会有独立的补救办法)2、将工单编码存到缓存中(redis),其值只存“WT”+yyyyMMdd后面的数字部分; &n
转载
2023-09-18 22:17:07
98阅读
听到Redis 实现并发锁,大家应该都很熟悉了,不知道有多少同学踩过redis并发锁的坑。最近项目中有同学实现了并发锁,通过代码review还是发现有些同学理解的并不深入,为后续的运行埋下来了巨大的隐患,今天空闲之余再重温一下并发锁,希望多刚接触redis 锁的同学有启发。首先列举一下几种常见的写法啊1、第一种,也是在review代码时经常遇到的 Jedis jedis;
public
转载
2023-05-25 13:33:28
237阅读
redis是单进程,阻塞式,在同一时刻只能处理一个请求,后来的请求需要排队等待。 优点:因为是单进程,所以无需处理并发问题,降低 系统复杂度 缺点:不适合缓存大尺寸对象(超过100kb)
转载
2023-06-28 16:45:35
923阅读
redis 的特点:• Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。• Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。• Redis支持数据的备份,即master-slave模式的数据备份。
转载
2023-05-25 09:12:15
154阅读