REDIS - 技术教程文章

Redis 安装,主从配置及Sentinel配置自动Failover【代码】

1、安装redis 首页地址:http://redis.io/下载地址:http://download.redis.io/ 下载最新的源码包tar -zxvf redis-stable.tar.gz -C /apps/product/ cd /apps/product/redis-stable/ make MALLOC=libc make install 2、运行加载配置文件并后台运行redis-server /apps/product/redis-stable/redis.conf & #redis-cli (命令行工具)3、测试# redis-benchmark --help 获取帮助信息,其中包含压力测试命令样例实际测试举例[root@loca...

redis 简单整理——主从拓扑图[二十二]

前言Redis的复制拓扑结构可以支持单层或多层复制关系,根据拓扑复杂性 可以分为以下三种:一主一从、一主多从、树状主从结构,下面分别介绍。正文一主一从结构一主一从结构是最简单的复制拓扑结构,用于主节点出现宕机时从节点 提供故障转移支持.当应用写命令并发量较高且需要持久化时,可以只在从节点上开启AOF,这样既保证数据安全性同时也避免了持久化对主节点的性能干扰。但需要注意的是,当主节点关闭持久化功能时, 如果主节...

windwos下php安装redis扩展

这几天项目的redis客户端改成连接工具改了,导致需要用到3.0版本以上的redis扩展。总结一下windows下安装redis扩展的方法。 1、通过phpinfo()查看thread是否是线程安全2、下载对应的(线程安全/非安全)php_redis.dll放入php安装目录的ext目录下3、修改配置文件php.ini注:php版本如果低于7.0,则不支持3.0以上的redis扩展。所以需要安装7.0以上的php版本原文:http://blog.51cto.com/13722587/2133067

redis集群部署方案【代码】

1) 系统包安装配置操作系统yum 源安装以下系统包安装gcc:yum install gcc安装zlib:yum install zib安装ruby:yum install ruby 2.0以上安装rubygems:yum install rubygems2) Redis 安装在redis 官网https://redis.io/download下载 redis-3.2.9.tar.gz拷贝redis-3.2.9.tar.gz 到/application/search解压 tar –zxvf redis-3.2.9.tar.gz安装 cd src && make && make test && make install 3) 修改配置进入cd /applica...

redis 实战-redis 事务【图】

redis 实战-redis 事务  1.描述 redis 事务单独的隔离操作:事务中的所有命令都会序列化、按顺序执行。事务在执行过程中,不会被其他客户端发送过来的命令请求所打断。   redis 事务没有隔离级别的概念:队列中的命令没有提交之前都不会实际的被执行,因为事务提交前任何指令都不会被实际执行,也就不存在“事务内的查询看到事务里的更新,在事务外查询不能看到”。  redis 事务不保证原子性:redis 同一个事务中如果有一条命...

redis【代码】

安装:tar -xvf redis-4.0.9.tar.gz- 编译安装mv redis-4.0.9 rediscd redismake && make install## 2.配置 修改安装目录下的redis.conf文件 vim redis.conf ```修改以下配置: #bind 127.0.0.1 # 将这行代码注释,监听所有的ip地址,外网可以访问 protected-mode no # 把yes改成no,允许外网访问 daemonize yes # 把no改成yes,后台运行redis提供了服务端命令和客户端命令: - redis-server 服务端命令,可以包含以下参数:start ...

Redis的Publish/Subscribe

Publish/Subscribe 从字面上理解就是发布(Publish)与订阅(Subscribe),在Redis中,你可以设定对某一个key值进行消息发布及消息订阅,当一个key值上进行了消息发布后,所有订阅它的客户端都会收到相应的消息。这一功能最明显的用法就是用作实时消息系统,比如普通的即时聊天,群聊等功能。相关命令参考:http://www.redisdoc.com/en/latest/pub_sub/index.html 订阅消息管道用一个客户端订阅管道127.0.0.1:6379> subscribe chan...

elkb+redis建立日志收集分析系统【图】

一、ELKB说明elastic提供了一套非常高级的工具ELKB来满足以上这几个需求。ELKB指的是用于日志分析或者说数据分析的四个软件,各自拥有独立的功能又可以组合在一起。先来简单介绍一下这四个软件。Elastic Search: 从名称可以看出,Elastic Search 是用来进行搜索的,提供数据以及相应的配置信息(什么字段是什么数据类型,哪些字段可以检索等),然后你就可以自由地使用API搜索你的数据。Logstash:。日志文件基本上都是每行一条,每...

关于redis集群方案【图】

最近在研究redis集群方案,看到知乎上有个朋友写的观点很好,就先收过来了。原文见:http://www.zhihu.com/question/21419897为什么集群?通常,为了提高网站响应速度,总是把热点数据保存在内存中而不是直接从后端数据库中读取。Redis是一个很好的Cache工具。大型网站应用,热点数据量往往巨大,几十G上百G是很正常的事儿,在这种情况下,如何正确架构Redis呢? 首先,无论我们是使用自己的物理主机,还是使用云服务主机,内存资...

redis基本用法【代码】

redis发布订阅三个角色,提供的redis命令 1.发布者publish 频道 消息 给频道发消息 2.订阅者SUBSCRIBE 频道 订阅频道 PSUBSCRIBE 频道* 支持模糊匹配的订阅 3.频道channel 频道名 自定义redis持久化之RDB 1.在配置文件中添加参数,开启rdb功能 redis.conf 写入port 6379daemonize yeslogfile /data/6379/redis.logdir /data/6379dbfilename s15.rdbsave 9001 #rdb机制 每900秒 有...

nosql----redis性能优化【图】

1.fork耗时导致高并发请求延时RDB和AOF的时候,AOF rewrite,耗费磁盘IO的过程,主进程fork子进程fork的时候,子进程是需要拷贝父进程的空间内存页表的,也是会耗费一定的时间的。一般来说,如果父进程内存有1个G的数据,那么fork可能会消耗在20ms左右,如果是10G-30G,那就会消耗几百毫秒的时间。info stats中的latest_fork_usec,可以看到最近一次form的时长。redis单机QPS一般在几万,fork可能一下子就会拖慢几万条操作的请求时长...

redis 学习

redis 学习查看 别人的类图 感觉不对,就自己画了一个不对请指示(留言)?引用别人的链接:http://yychao.iteye.com/blog/1751583?可以对比一下,,,原文:http://knight-black-bob.iteye.com/blog/2178159

redis Transaction支持【代码】

前面主要介绍了redis数据类型,这里讲下事务问题NoSQL都不支持事务,虽然Redis的Transactions提供的并不是严格的ACID的事务(比如一串用EXEC提交执行的命令,在执行中服务器宕机,那么会有一部分命令执行了,剩下的没执行),但是这个Transactions还是提供了基本的命令打包执行的功能(在服务器不出问题的情况下,可以保证一连串的命令是顺序在一起执行的,中间有会有其它客户端命令插进来执行)。 Redis还提供了一个Watch功能...

redis常用总结

1. 使用redis有哪些好处?(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)(2) 支持丰富数据类型,支持string,list,set,sorted set,hash(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行(4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除 2. redis相比memcached有哪些优势?(1) memcached所有的值均是简单的...

15 redis-分布式锁【图】

1 概念分布式锁:是进程级别的锁,用于控制多个进程对同一资源的访问。实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁可靠性要求:互斥性。在任意时刻,只有一个客户端能持有锁。不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。具有容错性。只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。加锁和解锁必须是同一个客户端,客户端自己...

redis源码安装【代码】

#安装目录mkdir -p /data/apps/redis cd /data/tgz wget http://download.redis.io/releases/redis-3.2.1.tar.gz cd redis-3.2.1make PREFIX=/data/apps/redis install #安装到指定目录中 #在安装redis成功后,你将可以在/data/apps/redis看到一个bin的目录,里面包括了以下文件: redis-benchmarkredis-check-aofredis-check-dumpredis-cli redis-server redis-server:Redis服务器的daemon启动程序redis-cli:Redis命令行操作工具...

redis入门

1.什么是redis? Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。2.redis的特点:Redis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。  Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。  Redis支持数据的备份,即master-slave模式的数据备份。3.redis的应...

Redis配置及使用【代码】

redis 配置注意 RedisTemplate和StringRedisTemplate的区别: 1. 两者的关系是StringRedisTemplate继承RedisTemplate。 2. 两者的数据是不共通的;也就是说StringRedisTemplate只能管理StringRedisTemplate里面的数据,RedisTemplate只能管理RedisTemplate中的数据。 3. SDR默认采用的序列化策略有两种,一种是String的序列化策略,一种是JDK的序列化策略。 StringRedisTemplate默认采用的是String的序列化策略,保存的key和value都...

Redis简介【图】

原文:https://www.cnblogs.com/xiaozhang666/p/12165845.html

Java开发者必知必会的50个Redis知识点,面试/学习都无所畏惧【代码】【图】

推荐阅读 关于"高并发系统设计"看这篇就够了,阿里、百度、美团都在用Redis作为目前的主流NoSql数据库,不会是不可能的,在面试中也是非常高频的,一定不能在这个环节丢分,不管是学习,还是面试,以下知识点,都有必要掌握。1.Redis是什么?Redis是一个开放源代码(BSD许可)的内存中数据结构存储,可用作数据库,缓存和消息代理,是一个基于键值对的NoSQl数据库。2.Redis特性?速度快基于键值对的数据结构服务器丰富的功能、丰富的...

redis 安装和链接【代码】

1、redis安装(建议linux下):https://www.cnblogs.com/uncleyong/p/9882843.html参考https://www.cnblogs.com/shawhe/p/9548620.html2、运行redis 注释配置文件127.0.01 关闭防火墙 测试链接import redis r = redis.Redis(host=‘IP‘,port=6379,password=‘密码‘,db=0) # 建立连接 r.set(‘name‘,‘root‘) # 设置值 r.set(‘name_ch‘,‘全栈测试笔记‘) res = r.get(‘name‘) # 获取值,返回的是bytes类型数据 res2 = ...

Redis(7)——持久化【一文了解】【代码】【图】

原文:Redis(7)——持久化【一文了解】目录一、持久化简介持久化发生了什么 | 从内存到磁盘如何尽可能保证持久化的安全二、Redis 中的两种持久化方式方式一:快照方式二:AOFRedis 4.0 混合持久化相关阅读扩展阅读参考资料 回到顶部一、持久化简介Redis 的数据 全部存储 在 内存 中,如果 突然宕机,数据就会全部丢失,因此必须有一套机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的 持久化机制,它会将内存中的...

Redisson实现分布式锁源码解读【代码】【图】

文章目录一、分布式锁的概念 和 使用场景二、将redis官网对于分布式锁(红锁)的定义和Redisson实现做概括性总结三、基于Redisson的分布式实现方案四、加锁过程分析五、锁重入过程分析六、未获取到锁的线程继续获取锁七、锁释放过程分析八、易混淆概念 一、分布式锁的概念 和 使用场景分布式锁是控制分布式系统之间同步访问共享资源的一种方式。  在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主...

Redis登录密码设置

1. 更改Redis.conf配置# requirepass foobared 去掉注释,foobared改为 自己的password , 我测试的时候用的是默认的 foobared2.启动redis/usr/local/redis/src/redis-server -p 63713.测试/usr/local/redis/src/redis-cli -p 6371 -a foobaredredis>set a b(error) ERR operation not permitted (-a 设置这个时候没起作用 )redis>auth foobaredOKredis>set a bOKredis>quit这时,再/usr/local/bin/redis-cli -a foobaredredis ...

jedis哨兵模式的redis组(集群),连接池实现。(客户端分片)【代码】

java 连接redis 我们都使用的 是jedis ,对于redis这种频繁请求的场景我们一般需要对其池化避免重复创建,即创建一个连接池 ,打开jedis的 jar包我们发现,jedis对池已经有了相关的 实现,根据pom 依赖可以清楚的知道 这是基于common-pool2连接池实现的。jedis的jar包中包含了三个连接池 JedisPool与JedisSentinelPool与ShardedJedisPool 。那么 jedis 为什么会包含三种实现方式呢 ?其实归根结底还是因为redis环境的 不同。单节点...

centos下部署redis服务环境的操作记录

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、 list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操...

带你100% 地了解 Redis 6.0 的客户端缓存【代码】【图】

原文:带你100% 地了解 Redis 6.0 的客户端缓存近日 Redis 6.0.0 GA 版本发布,这是 Redis 历史上最大的一次版本更新,包括了客户端缓存 (Client side caching)、ACL、Threaded I/O 和 Redis Cluster Proxy 等诸多更新。我们今天就依次聊一下客户端缓存的必要性、具体使用、原理分析和实现。为什么需要客户端缓存?我们都知道,使用 Redis 进行数据的缓存的主要目的是减少对 MySQL 等数据库的访问,提供更快的访问速度,毕竟 《Redi...

为什么单线程的Redis这么快?【图】

原文:为什么单线程的Redis这么快?一. Redis简介Redis是一个开源的内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets)等。二. Redis为什么这么快完全基于内存,绝大部分请求是纯粹的内存操作。 数据结构简单,对数据操作也简单,Redis中的数据结构是专门进行设计的。 采用单线程,避免...

Redis的高级应用【图】

Redis的高级应用实验简介前面学习了Redis的基础知识和基本命令,接下来继续讲解Redis的高级应用,包括:安全性设置,主从复制,事务处理, 持久化机制, 虚拟内存的使用。一、安全性设置在客户端连接是需要指定的密码(由于redis速度相当的快,一秒钟可以150K次的密码尝试,所以需要设置一个密码强度很大的密码)。设置密码的方式有两种:(1) 使用config set 命令的requirepass 参数,具体格式为config set requirepass “passwo...

获取QQ信息导入execl、存redis、下载头像【代码】

# http://q4.qlogo.cn/g?b=qq&nk=1049328922&s=140 #这个是获取头像的url# 1、请求qq群的接口,实现传入一个群号# 2、把群里每个人的 昵称、群备注、入群时间、qq号,性别,存到redis里面,用hash类型# {"qq_num":511402865,"nick":"午夜之魂","card":"午夜之魂","gender":"男","入群时间":"2017-01-03"}# 3、把每个人的头像下载下来保存到本地,牛牛.jpg...