nosql
redis memcache
yshir-phper
这个作者很懒,什么都没留下…
展开
-
Redis分布式锁--PHP
Redis 分布式锁的作用在单机环境下,有个秒杀商品的活动,在短时间内,服务器压力和流量会陡然上升。这个就会存在并发的问题。想要解决并发需要解决以下问题1、提高系统吞吐率也就是qps 每秒处理的请求书2、避免商品在高并发的情况下,出现资源争抢导致的超买超买问题解决问题一:采用内存型数据库提高系统的qps解决问题二:就要用到经常会遇到的锁,例如MySQL 有读锁、写锁、排他锁、悲观锁、乐观锁。不过这里只讨论redis来实现锁简单版设置锁$redis = new Redis();$转载 2020-11-19 10:30:44 · 94 阅读 · 0 评论 -
memcache 内存机制与缓存原理
文章目录第1章 memcached 的内存管理与删除机制1.1 内存碎片化1.2 slab allocator 缓解内存碎片化1.3 系统如何选择合适的 chunk?1.4 固定大小 chunk 带来的内存浪费1.5 grow factor调优1.6 memcached 的惰性删除机制1.7 memcached 的lru 删除机制1.8 memcached 中的一些参数限制第1章 memcached 的内存管理与删除机制1.1 内存碎片化如果用 c 语...转载 2020-05-24 12:03:10 · 353 阅读 · 0 评论 -
memcache实战
第一章 memcache的使用1.1 添加keyadd key flag expire length //flag 标志,要求为一个正整数。memcached 基本文本协议,传输的东西,理解成字符串来存储.//expire 有效期。设置缓存的有效期,有 3 种格式:设置秒数, 从设定开始数,第 n 秒后失效;时间戳, 到指定的时间戳后失效;设为 0. 不自动失效(有种误会,设为 0,永久有效.错误的)(编译 memcached 时,指定一个最长常量,默认是 30 天.所以,即使设为 0,30转载 2020-05-24 11:56:17 · 186 阅读 · 0 评论 -
redis主从复制实际操作
一、主从复制说明在实际的场景当中单一节点的redis容易面临风险。比如:机器故障。我们部署到一台 Redis 服务器,当发生机器故障时,需要迁移到另外一台服务器并且要保证数据是同步的。而数据是最重要的,如果你不在乎, 基本上也就不会使用 Redis 了。1.2 什么是主从复制主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称...原创 2019-09-14 17:20:58 · 123 阅读 · 0 评论 -
redisRDB持久化
1、RDB文件 Redis是一个基于内存的数据库,数据库中的所有数据都是保存在内存中的。 当进程退出时,内存中的数据库状态也会全部丢失。为了解决这个问题,redis提供了RDB持久化功能,RDB持久化可以将redis保存在内存中的数据存储到磁盘上,避免数据意外丢失。 通过该文件,可以还原RDB文件生成时的数据库状态。2、RDB文件的创建 有两个命令可以生成R...转载 2019-09-19 21:59:26 · 79 阅读 · 0 评论 -
redis相关操作指令
redis-server:服务器端操作redis-server --helpps aux | grep redis 查看redis服务器进程kill -9 pid 杀死redis服务器redis-server /etc/redis/redis.conf 指定加载的配置文件redis-cli :客户端redis-server:连接redis: redis-cl...原创 2019-09-21 16:23:07 · 154 阅读 · 0 评论 -
Redis 持久化
Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)。RDB 详解RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis 重启会通过加载dump.rdb文件恢复数据。从配置文件了解RDB打开 redis...转载 2019-09-21 21:58:53 · 84 阅读 · 0 评论 -
Redis优化及配置
redis所有的数据都在内存中,而内存又是非常宝贵的资源。常用的内存优化方案有如下几部分:1、配置优化2、缩减键值对象3、命令处理4、缓存淘汰方案一、配置优化1、linux配置优化内存分配vm.overcommit_memory Redis是内存操作,需要优先使用内存。设置overcommit 为1。是为了让 fork 操作能够在低内存下也执行成功。Linux...原创 2019-09-23 17:05:34 · 16550 阅读 · 0 评论 -
redis主从复制原理
一、基本概念1、全量复制用于初次复制或其它无法进行部分复制的情况,将主节点中的所有数据都发送给从节点,是一个非常重型的操作,当数据量较大时,会对主从节点和网络造成很大的开销2、部分复制用于处理在主从复制中因网络闪断等原因造成的数据丢失场景,当从节点再次连上主节点后,如果(条件允许),主节点会补发丢失数据给从节点。 因为补发的数据远远小于全量数据,可以有效避免全量复制的过高开销,需要注意的...原创 2019-09-16 15:01:22 · 154 阅读 · 0 评论 -
redis和memcache的介绍与区别
什么是memcache?Memcached是分布式的内存对象缓存系统,是基于Key/Value对的HashMap。每一对,都可以设定过期时间,(如果设置为0则永不过期【永不过期实际为30天后过期】)但由Memcached的数据是存在内存中的,所以发生断电或者是服务器故障都会使数据丢失Memcached可以存储数组、对象、字符、汉字等各种数据类型Memcached特点:(1)无备份,...转载 2020-02-17 16:40:11 · 136 阅读 · 0 评论 -
Redis的PHP操作手册
String 类型操作string是redis最基本的类型,而且string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象$redis->set('key','TK');$redis->set('number','1');$redis->setex('key',5,'TK'); //设置有效期为5秒的键...转载 2019-12-03 15:36:59 · 188 阅读 · 0 评论 -
Windows环境安装Redis
Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。...原创 2019-12-02 10:45:23 · 129 阅读 · 0 评论 -
php 使用predis集群操作
文件目录结构如下1、composer prediscomposer require predis/predis2、cluster.phprequire "vendor/autoload.php";$parameters = [ '139.159.141.107:6381', '139.159.141.107:6382', '139.159.14...原创 2019-10-19 10:02:50 · 1203 阅读 · 0 评论 -
php redis 操作手册
redis手册推荐:redis中文手册下载地址:http://www.php.cn/xiazai/shouce/54redis中文在线手册:http://www.php.cn/course/49.htmlString 类型操作string是redis最基本的类型,而且string类型是二进制安全的。意思是redis的string可以包含任何数据。$redis->set(...原创 2019-10-09 14:38:36 · 81 阅读 · 0 评论 -
PHP Redis 全部操作方法
一、Connection1、connect - 连接到服务器$redis->connect('127.0.0.1', 6379);$redis->connect('127.0.0.1'); // port 6379 by default$redis->connect('tls://127.0.0.1', 6379); // enable transport leve...原创 2019-10-09 15:39:27 · 701 阅读 · 0 评论 -
redis 之sentinel.conf配置详解
redis-sentinel.conf配置项说明如下:1.port 26379sentinel监听端口,默认是26379,可以修改。2.sentinel monitor <master-name> <ip> <redis-port> <quorum>告诉sentinel去监听地址为ip:port的一个master,这里的mast...转载 2019-09-24 22:39:04 · 585 阅读 · 0 评论 -
redis-trib.rb 搭建集群
一、redis-trib.rb 搭建集群redis-trib.rb 是采用 Ruby 实现的 Redis 集群管理工具。内部通过 Cluster 相关命令帮我们简化集群创建、检查、槽迁移和均衡等常见运维操作,使用 之前需要安装 Ruby 依赖环境。下面介绍搭建集群的详细步骤。内部通过 Cluster 相关命令帮我们简化集群创建、检查、槽迁移和均衡等常见运维操作,使用之前需要安装 Ruby ...原创 2019-10-04 17:23:28 · 756 阅读 · 0 评论 -
redis-trib创建redis集群遇到的问题
使用redis-trib.rb创建redis集群以下的几个问题 创建命令如下./src/redis-trib.rb create --replicas 0 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381问题一:/usr/bin/env: ruby: No such file or directory没有安装ruby,解决办法:安装ruby,...原创 2019-10-04 12:07:53 · 881 阅读 · 0 评论 -
redis集群(三主三从)
准备搭建集群一、准备工作1、Dockerfile文件FROM ruby:2.5-alpineRUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \ && apk add gcc g++ libc-dev wget vim openssl-dev m...原创 2019-10-03 16:56:05 · 1321 阅读 · 0 评论 -
docker+redis主从与哨兵配置
redis主从主一从配置 主节点IP:192.168.198.131 从节点IP:192.168.198.132 端口使用默认6379节点1 节点2 全部执行以下命令,不同的地方有标注。vim redis.conf //修改以下内容,不是必须的bind 192.168.198.131 //两台主机分别改为自己的IPlogfile "/da...转载 2019-09-21 16:39:28 · 190 阅读 · 0 评论 -
redis哨兵机制--配置文件sentinel.conf详解
edis的哨兵机制是官方推荐的一种高可用(HA)方案,我们在使用Redis的主从结构时,如果主节点挂掉,这时是不能自动进行主备切换和通知客户端主节点下线的。Redis-Sentinel机制主要用三个功能:(1)监控:不停监控Redis主从节点是否安装预期运行(2)提醒:如果Redis运行出现问题可以 按照配置文件中的配置项 通知客户端或者集群管理员(3)自动故障转移:当主节点下线之...转载 2019-09-22 00:16:15 · 362 阅读 · 0 评论 -
redis主从配置相关参数详解
redis.conf相关参数##Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no##当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定 pidfile /var/run/redis.pid##指定Redis监听端口,默...转载 2019-09-22 00:16:27 · 246 阅读 · 0 评论 -
redis持久化的选择
在实际生产环境中,根据数据量、应用对数据的安全要求、预算限制等不同情况,会有各种各样的持久化策略;如完全不使用任何持久化、使用RDB或 AOF的一种,或同时开启RDB和AOF持久化等。此外,持久化的选择必须与Redis的主从策略一起考虑,因为主从复制与持久化同样具有数据备份的功能, 而且主机master和从机slave可以独立的选择持久化方案。 面对场景来讨论持久化策略的选择,下面的讨论...原创 2019-09-22 00:15:17 · 194 阅读 · 0 评论 -
Redis-sentinel哨兵模式集群方案配置
最近研究了redis的集群方案,第一个方案是创建 redis cluster,第二种方案就是用哨兵模式来进行主从替换以及故障恢复。一、sentinel介绍Redis SentinelSentinel(哨兵)是用于监控redis集群中Master状态的工具,其已经被集成在redis2.4+的版本中Sentinel作用:1):Master状态检测2):如果Master异常,则会进行Ma...转载 2019-09-22 00:15:05 · 96 阅读 · 0 评论