REDIS - 技术教程文章

Redis 设计与实现 (三)【代码】

RDB 持久化 一、生成RDB  cmd:SAVE --阻塞进程,执行完,才能有效接收客户端命令。  cmd: BGSAVE --非阻塞,开启子进程保存。          客户端如果发送SAVE和BGSAVE命令直接拒绝。          BGWRITEAOF命令再BGSAVE执行完才能执行。   二、载入RDB  服务器启动时自动执行,检测到RDB文件就会自动加载。  如果开启AOF,优先使用执行AOF。  AOF关闭的情况下,才会执行RDB。 三、自动间隔性保...

Redis介绍与安装【图】

Redis是一个开源的、高性能的、基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与存储需求。Redis(REmote DIcotry Server)是远程字典服务器的缩写,它不同于MySQL等关系型数据库,Redis属于非关系型数据库,它是以Key-Value的形式来存储数据的,其中Value又可以递归的被定义为一个键值对(Redis),因此Redis有着很大的灵活性。Redis官网给出了一个描述性的介绍:It supports data structures such...

Redis发布-不重启转换-持久化-主从同步【代码】【图】

redis发布订阅应用场景1、今日头条订阅号、微信订阅公众号、新浪微博关注、邮件订阅系统 2、即使通信系统 3、群聊部落系统(微信群)使用方法:# 发布者: PUBLISH 频道 消息# 订阅者: SUBSCRIBE 频道# 正则匹配:(订阅者订阅) PSUBSCRIBE *频道 (例: *zhibo或zhibo*)例子redis-cli: # 发布者: > PUBLISH wang 123 redis-cli: # 订阅者: > SUBSCRIBE wang # 发布者发送123,这边就可以收到123 # 另一个订阅者: > SUBSCRIBE wang #...

redis 与 memcached

memcached 是多线程,在计算一些统计数据时会因为锁的关系有一点点效率损耗redis 是单线程的,作者认为内存的存储已经够快不需要多线程. redis新开了线程做一些管理工作,如缓存失效.memcached 采用惰性失效,就是当key被访问的时候,去判断是否失效,如果key不被访问时,可能会长驻内存,直到内存不够时,去寻找低访问key腾空间的时候,才会被替换.而memcached在判断哪些key不用,或用的少的逻辑,并不是我们想象的那样,把所有key进行比较,因为...

redis数据备份恢复SAVE【代码】

#(1)redis数据备份SAVE(BGSAVE也可以备份,并且后台执行备份)127.0.0.1:6379> SAVE OK#备份完成后会在安装目录下(默认/var/lib/redis/)创建dump.rdb文件#获取redis的安装目录127.0.0.1:6379> CONFIG GET dir 1) "dir" 2) "/var/lib/redis" ll /var/lib/redis/dump.rdb -rw-r--r--. 1 redis redis 18 9月 9 16:50 /var/lib/redis/dump.rdb#(2)数据恢复恢复数据,只需要将备份文件(dump.rdb)移动到redis安装目录...

【Redis哨兵集群】【代码】【图】

目录开始配置主从复制开始配置Redis Sentinel@ ***在开始之前,我们先来看看Redis的主从复制主从复制原理:从服务器向主服务器发送SYNC命令。主服务器接到SYNC命令后,会调用BGSAVE命令,创建一个RDB文件,并使用缓冲区记录接下来执行的所有写命令。当主服务器执行完BGSAVE命令后,会向从服务器发送RDB文件,而从服务器则会接收并执行这个文件。主服务器将缓冲区存储的所有写命令发送给从服务器执行。---------Redis主从复制使用的...

Python操作 Memcache、Redis、RabbitMQ、SQLAlchemy【代码】【图】

Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。 安装 yum -y install libevent-develwget http://memcached.org/latest tar -zxvf memc...

Redis07-Redis单节点容量问题,twemproxy,predixy的使用【代码】

Redis单节点容量问题一、单节点容量问题我们在实际场景中,往往遇上一个单节点容量问题。1.进行业务拆分,数据分类2.到了数据不能拆分的时候,可以进行数据分片进行哈希取模(影响分布式下的扩展性%3,%4,如果多加一台机器,就会收到影响)进行逻辑随机(可以放进去,但是拿不出来) 解决方案:两台机器同时存储一个list,然后client直接连2台redis,进行两台一起消费一致性哈希算法 crc16 crc32 md5 sha1 sha256没有进行取模,等宽...

redis常用命令

启动 Redis 服务src/redis-server或者src/redis-server redis.confsrc/redis-server redis.conf 1>log.log 2>errlog.log1为标准输出,2为错误输出 将 Redis 作为 Linux 服务随机启动vi /etc/rc.local, 加入代码:/root/install/redis-2.4.9/src/redis-server客户端连接/redis-cli停止redis服务:/redis-cli shutdown原文:http://www.cnblogs.com/gradven/p/4858440.html

redis分片机制(shards)【代码】【图】

redis分片机制(shards)前提说明: redis可以通过修改内存的大小 实现数据的保存.但是内存的资源不易设置的过大,因为很多的时间都浪费在内存的寻址中. 需求: 如果有海量的数据,需要redis存储 问:应该如何处理? 解决方案: 可以采用Redis分片机制 实现内存数据的扩容. 知识点: 采用redis分片 只要的目的就是为了实现内存扩容.从而解决海量数据存储的问题图解Redis分片搭建步骤我们可以启动多个redis服务, 来实现多个redis服务器, 因为r...

输出redis cluster集群所有节点指定的参数的配置【代码】

需要:实现类似redis-trib.rb call 命令的功能,输出redis cluster集群所有节点指定的参数的配置 redis-trib.rb的输出[redis@lxd-vm3 ~]$ redis-trib.rb call 5.5.5.101:29001 config get *timeout* /usr/local/ruby2.5.1/lib/ruby/gems/2.5.0/gems/redis-3.3.0/lib/redis/client.rb:459: warning: constant ::Fixnum is deprecated >>> Calling CONFIG get *timeout* 5.5.5.101:29001: ["timeout", "0", "repl-timeout", "60", "c...

redis--->微博小项目

redis 微博小项目centos6.9+lnmp+redis 写的微博小项目,梳理了redis在项目中kes的设计,redis各种数据结构在不同业务场景下的应用等知识点。这里用的php框架是自己写的一个简陋小框架。github:https://github.com/Frankltf/redisproject/tree/features-one微博小项目' ref='nofollow'>redis--->微博小项目原文:https://www.cnblogs.com/frankltf/p/8892687.html

Redis - 学习笔记(1)【代码】

1、Redis支持的数据类型String:字符串 Hash:散列 List:列表 Set:集合 Sorted Set:有序集合2、Redis3大特点:1、Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用 2、Redis不仅支持key-value对形式的数据,还支持List、Set、ZSet、Hash等数据结构的存储。 3、Redis支持数据的备份,即master-slave模式的数据备份。3、Redis的启动redis-server.exe redis.windows.conf客户端的连接: re...

windows安装redis并设置别名【图】

最近两天不知什么原因导致win10的redis 无法通过 双击 redis-server.exe 文件启动 redis服务;于是从新安装并且 通过命令行启动服务,并且设置别名,每次方便启动服务1.下载redis地址:https://github.com/MicrosoftArchive/redis/releases ,选择如下安装包下载 2.解压到 某一文件夹,如 D:\redis ,启动命令为: D:\redis\redis-server.exe D:\redis\redis.windows.conf 即可看到结果3.设置别名在 C:\Users\IT_1 目录下,新...

用Spring Aop 实现注解Dao层的自动Spring Redis缓存【代码】

摘要: 主要针对Dao层的一些数据库查询的操作,数据实时性不强,直接加入缓存。当缓存中有的时候,就使用缓存中的数据。这样的方法,最终仅仅使用一个注解实现。对于之前的hibernate二级缓存使用,比较陌生。比如是否支持Redis或者可以自己开发支持。是否支持针对部分需要加入缓存的方法配置,而不是所有的hibernate实体都加入缓存。可能我这种方法对于二级缓存来说,抛开代码差距,也是殊途同归的东西。这几天工作中,突然遇到了对...

Redis事务【代码】【图】

Redis事务就是将一组指令放入一个队列,当执行时,按照添加顺序依次执行,不被其他线程的指令干扰,可能会有人说了,Redis不是单线程的吗?为什么会存在并发问题呢?Reids是单线程的没错,但是会有多个客户端连接Redis,每个客户端会有一个线程,会形成竞争开启事务:此命令执行后,后续所有的指令都加入到事务中multi 执行事务:设置事务结束的位置,同时执行事务,与multi成对使用exec 注意:加入事务的命令没有立即执行,只有执...

Redis的安装与使用

Redis使用的Demo样例建议可以参考下这个课程《基于Dubbo的分布式系统架构实战》IP:192.168.4.111环境:CentOS 6.6Redis版本:redis-3.0 (考虑到Redis3.0在集群和性能提升方面的特性,rc版为正式版的候选版,而且很快就出正式版)安装目录:/usr/local/redis用户:root 编译和安装所需的包:# yum install gcc tcl 下载3.0版Redis(当前最新版redis-3.0.0-rc5.tar.gz,请学员们在安装时自行选用最新版)# cd /usr/local/src# wget ...

Go操作Redis【代码】

目录一、Redis介绍二、Redis支持的数据结构三、Redis应用场景四、Redis与Memcached比较五、Go操作Redis六、安装七、连接八、基本使用8.1 set/get示例8.2 zset示例在项目开发中redis的使用也比较频繁,本文介绍了Go语言如何操作Redis。一、Redis介绍Redis是一个开源的内存数据库,Redis提供了多种不同类型的数据结构,很多业务场景下的问题都可以很自然地映射到这些数据结构上。除此之外,通过复制、持久化和客户端分片等特性,我们...

redis学习教程一《Redis的安装和配置》

redis学习教程一《Redis的安装和配置》Redis的优点以下是Redis的一些优点。异常快 - Redis非常快,每秒可执行大约110000次的设置(SET)操作,每秒大约可执行81000次的读取/获取(GET)操作。支持丰富的数据类型 - Redis支持开发人员常用的大多数数据类型,例如列表,集合,排序集和散列等等。这使得Redis很容易被用来解决各种问题,因为我们知道哪些问题可以更好使用地哪些数据类型来处理解决。操作具有原子性 - 所有Redis操作都是原子...

线上项目mysql、redis平滑迁移方案及步骤

1.清晰系统内网及公网可达,CVM配置2.迁移完整数据,项目部署,测试网络环境.redis:复制rdb文件mysql:xtrabackup备份3.确保项目正常运行,网络正常访问.项目对外接口及账户中心访问可达.4.初始化redis,mysql.5.配置网络环境,同步mysql 1.主库创建同步账号,配置腾讯云mysql为从并可写.配置log-bin 2.主库xtrabackup备份,设置从库导入.获取同步点,启动从库(可写),校验状态.6.配置网络环境,同步redis 1.配置腾讯云redis为从并可...

CentOS下Redis服务器安装配置

说明:操作系统:CentOS1、安装编译工具yum install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel kernel keyutils patch perl2、安装tcl组件包(安装Redis需要tcl支持)下载:http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz上传tcl8.6.1-src.tar.gz到/usr/local/src目录cd /usr/local/src #进入软件包存放目录tar zxvf tcl8.6.1-src.tar.gz #解压cd tcl8.6.1 #进入安装目录cd unix./conf...

window下安装redis

在window下安装redis,首先下载redis,解压放到一个目录下,比如D:\redis\ 在控制台下切换到D:\redix 输入:redis-server.exe redis.conf 然后重新打开一个cmd控制台,仍然切换到D:\redis\下 输入:redis-cli.exe -h 127.0.0.1 -p 6379 之后就可以使用了,比如继续输入:set test "hello world" 接着输入 get test 就会返回 hello world -----------------------------------------...

Redis中的Java分布式缓存【代码】

为什么在分布式Java应用程序中使用缓存?今天学习了两节优锐课讲解分布式缓存的内容,收获颇多,分享给大家。在提高应用程序的速度和性能时,每毫秒都是至关重要的。例如,根据Google的一项研究,如果网站在3秒或更短时间内无法加载,则有53%的移动用户会离开该网站。缓存是使你的分布式应用程序更快的最重要的技术之一。你可以将信息存储到计算机的CPU中越近,访问信息的速度就越快。从CPU缓存中加载数据要比从RAM中加载数据快得...

Redis实战(七)【代码】

修改数据C#语言修改Redis示例。1、通过key修改单个valueusing (var redisClient = RedisManager.GetClient()){var user = redisClient.GetTypedClient<User>();var value = user.GetValue(txtChangeKey.Text);//首先先获取当前key的值var changedUser = new User{Id = value.Id,Name = txtChangeName.Text,Job = new Job { Position = txtChangePosition.Text }};//设置相应的新value值,并使其它数据与原来相统一redisClient.Set(...

Redis的key和value大小限制

Redis的key和value大小限制 今天研究了下将java bean序列化到redis中存储起来,突然脑袋灵光一闪,对象大小会不会超过redis限制?不管怎么着,还是搞清楚一下比较好,所以就去问了下百度,果然没多少人关心这个问题,没找到比较合适的答案,所以决定还是去官网找吧。找到两句比较关键的话,截图如下。 结论 redis的key和string类型value限制均为512MB。原文:https://www.cnblogs.com/wangshicheng/p/9885851.html

Redis的使用场景 by 杨卫华

转载自新浪微博架构师杨卫华的博客 http://timyang.net/tag/redis/,省略了部分内容按:杨卫华在2010年就已经测试了Redis的性能,并给出了初步的结论:“Redis性能惊人,国内前十大网站的子产品估计用1台Redis就可以满足存储及Cache的需求。” 而我在今天才开始看Redis,已经落后了6年。 Redis是什么?这个问题的结果影响了我们怎么用Redis。如果你认为Redis是一个key value store, 那可能会用它来代替MySQL;如果认为它是一个可以...

Spring Data Redis 整合【图】

首先现在redis包,官方网址是 http://redis.io/download     下载好了后直接解压Redis压缩包到指定目录:    使用对应位数操作系统文件夹下面redis-server.exe命令启动redis (测试命令redis-server.exe 服务启动程序redis-cli.exe 客户端命令行工具redis.conf 服务配置文件通过redis-server.exe启动服务,默认端口 6379通过redis-cli.exe 启动客户端工具)。    1.在程序中通过maven坐标,引入spring data redis ,...

redis集群部署【代码】

Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存。Redis 在3.0版本前只支持单实例模式,虽然支持主从模式、哨兵模式部署来解决单点故障,但是现在互联网企业动辄大几百G的数据,可完全是没法满足业务的需求,所以,Redis 在 3.0 版本以后就推出了集群模式。Redis 集群采用了P2P的模式,完全去中心化。Redis 把所有的 Key 分成了 16384 个 slot,每个 Redis 实例负责其中一部分 slot...

Redis事务/持久化/发布订阅【图】

Redis事物Redis事物Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。一个事务从开始到执行会经历以下三个阶段:开始事务。命令入队。执行事务。实例以下是一个事务的例子,它先以 MULTI 开始一个事务, 然后...

REdis MASTER aborted replication NOAUTH Authentication required

对于REdis集群,如果设置了requirepass,则一定要设置masterauth,否则从节点无法正常工作,查看从节点日志可以看到哪下内容:19213:S 22 Apr 2019 10:52:17.389 * Connecting to MASTER 1.6.18.16:218119213:S 22 Apr 2019 10:52:17.389 * MASTER <-> REPLICA sync started19213:S 22 Apr 2019 10:52:17.389 * Non blocking connect for SYNC fired the event.19213:S 22 Apr 2019 10:52:17.390 * Master replied to PING, replic...