![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
文章平均质量分 64
yuyivie1
这个作者很懒,什么都没留下…
展开
-
redis学习笔记之十二:使用redis-trib.rb来操作集群
n 使用redis-trib.rb来操作集群redis-trib.rb是Redis源码中提供的一个辅助工具,可以非常方便的来操作集群,它是用ruby写的,因此需要在服务器上安装相应环境1:安装Ruby(1)下载ruby安装包,地址https://www.ruby-lang.org/en/downloads/(2)解压ruby(3)进入解压的的目录,然后分别configure、make...原创 2018-08-09 19:28:53 · 1185 阅读 · 0 评论 -
redis学习笔记之十一:集群的故障判断及故障恢复
n 故障判定1:集群中每个节点都会定期向其他节点发出ping命令,如果没有收到回复,就认为该节点为疑似下线,然后在集群中传播该信息2:当集群中的某个节点,收到半数以上认为某节点已下线的信息,就会真的标记该节点为已下线,并在集群中传播该信息3:如果已下线的节点是master节点,那就意味着一部分插槽无法写入了4:如果集群任意master挂掉,且当前master没有slave,集群进入fa...原创 2018-08-08 17:29:47 · 2075 阅读 · 0 评论 -
redis学习笔记之十三:Lua脚本开发
n Lua介绍Lua是一个高效、简洁、轻量级、可扩展的脚本语言,可以很方便的嵌入到其它语言中使用,Redis从2.6版支持Lua。n 使用脚本的好处1:减少网络开销2:原子操作:Redis会把脚本当作一个整体来执行,中间不会插入其它命令3:复用功能n Lua的使用步骤1:创建一个.lua结尾的文本文件 例如(test.lua)2:redis-cli --eval test.l...原创 2018-08-19 08:44:15 · 4054 阅读 · 1 评论 -
redis学习笔记之十四:Redis的管理
n 常用的管理命令运行期间修改redis配置(config set)1:slowlog get:获取慢日志,可以通过配置文件的slowlog-log-slower-than来设置时间限制,默认是10000微秒,slowlog-max-len来限制记录条数。返回的记录包含四个部分:(1)日志的id(2)该命令执行的unix时间(3)该命令消耗的时间,单位微秒(4)命令和参数2...原创 2018-08-23 22:22:18 · 117 阅读 · 0 评论 -
redis学习笔记之十五:Redis的优化
n 使用管道(Pipeline)Redis的底层通讯协议对管道提供了支持,通过管道,可以一次性发送多条命令给Redis,在执行完后一次性将结果取回。使用管道,可以减少客户端和Redis的通信次数,降低网络延时,从而提供性能。Redis的管道功能在命令行中没有,但Redis是支持管道的,而且在各个语言版的client中都有相应的实现。n 精简键名和键值n 合理设计存储的数据结构和数据关...原创 2018-08-23 22:53:44 · 367 阅读 · 0 评论 -
redis bitmap 位操作。
Redis从2.2.0版本开始新增了setbit,getbit,bitcount等几个bitmap相关命令。虽然是新命令,但是并没有新增新的数据类型。redis 通过对bitmap 来实现对二进制bit位的操作,用来记录一些状态信息。其中一个字节占8个bit位。用bit位中的二进制的0 和1 各表示一个状态,以达到记录某些状态信息。因为所有的状态都是记录基于二进制的bit位。所以大大的节省了这些状...原创 2018-08-31 16:49:03 · 3519 阅读 · 3 评论 -
redis setnx 实现分布式锁
import java.util.Map;import java.util.concurrent.ConcurrentHashMap;import org.slf4j.Logger;import org.slf4j.LoggerFactory; /** * @ClassName: DistributedLockHandler.java * @Description: 分布式...转载 2018-08-30 12:32:20 · 902 阅读 · 0 评论 -
redis中的事务、lua脚本和管道的使用场景
redis中的事务并不像mysql中那么完美,只是简单的保证了原子性。redis中提供了四个命令来实现事务,MULTI:类似于mysql中的BEGIN;EXEC:类似于COMMIT;DISCARD类似于ROLLBACK;WATCH则是用于来实现mysql中类似锁的功能。具体的使用方法非常简单,例如:127.0.0.1:6379> multiOK127.0.0.1:6379> ...转载 2018-09-02 14:26:29 · 244 阅读 · 0 评论 -
redis学习笔记之十六:Redis和Spring集成
n 构建开发环境,在Maven中添加spring-data-redis支持的jedis版本目前只是到了2.7.0,所以要修改一下前面的配置,然后添加:<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis&l...原创 2018-09-02 15:51:51 · 185 阅读 · 0 评论 -
redis学习笔记之十:插槽及分片
n 什么是插槽插槽是Redis对Key进行分片的单元。在Redis的集群实现中,内置了数据自动分片机制,集群内部会将所有的key映射到16384个插槽中,集群中的每个数据库实例负责其中部分的插槽的读写。n 键与插槽的关系Redis会将key的有效部分,使用CRC16算法计算出散列值,然后对16384取余数,从而把key分配到插槽中。键名的有效部分规则是:1:如果键名包含{},那么有效部...原创 2018-08-08 17:28:05 · 2756 阅读 · 0 评论 -
redis学习笔记之九:Redis的集群
n 复制的问题由于复制中,每个数据库都是拥有完整的数据,因此复制的总数据存储量,受限于内存最小的数据库节点,如果数据量过大,复制就无能为力了。n 分片分片(Partitioning)就是将你的数据拆分到多个Redis实例的过程,这样每个Redis实例将只包含完整数据的一部分。常见的分片方式:1:按照范围分片2:哈希分片,比如一致性哈希n 常见的分片实现:1:在客户端进行分...原创 2018-08-02 23:24:38 · 207 阅读 · 0 评论 -
redis学习笔记之一:安装redis
1:去官网下载最新的版本:http://redis.io/download ,这里用的是3.0.22:解压后,进入解压好的文件夹3:redis的安装非常简单,因为已经有现成的Makefile文件,所以直接先make,然后make install就可以了4:安装的位置在/usr/local/bin ,有:(1)redis-benchmark:性能测试工具,测试Redis在你的系统及配置下的...原创 2018-08-01 21:35:59 · 152 阅读 · 0 评论 -
redis学习笔记之二:Redis的数据类型
n Redis的keyRedis的key是字符串类型,如果中间有空格或者转义字符等,要用“”。1:命名建议:对象类型:对象ID:对象属性2:多个单词之间以“.”来分隔3:Key的命名,应该在可读的情况下,尽量简短n Redis的Value支持五种类型1:String:字符串,可以存储String、Integer、Float型的数据,甚至是二进制数据,一个字符串最大容量是512M2:...原创 2018-08-01 21:39:55 · 160 阅读 · 0 评论 -
redis学习笔记之三:Redis的基本操作
n 对Keys的操作命令1:Keys:获得符合规则的键名列表格式是keys pattern,pattern支持glob风格通配符格式:(1)? 匹配一个字符(2)* 匹配任意个字符(3)[] 匹配中括号内的任一字符,可以用-来表示一个范围(4)\x 匹配字符x,用于转义符号2:exists:判断键值是否存在,格式是exists key3:del:删除key,格式是del key。...原创 2018-08-01 21:48:56 · 214 阅读 · 0 评论 -
redis学习笔记之四:Redis的配置详解
n Config命令可以在redis-cli里面使用config命令来获取或者设置Redis配置,可以不用重新启动Redis。命令是config get/set 配置名。注意并不是所有的配置参数都可以通过Config来在运行期修改,比如:daemonize、pidfile、port、database、dir、slaveof、rename-command等n redis.conf的配置介绍1...原创 2018-08-01 22:00:57 · 244 阅读 · 0 评论 -
redis学习笔记之五:Redis的持久化
n Redis持久化概述Redis持久化分成两种方式:RDB(Redis DataBase)和AOF(Append Only File)1:RDB是在不同的时间点,将Redis某一时刻的数据生成快照并存储到磁盘上2:AOF是只允许追加不允许改写的文件,是将Redis执行过的所有写指令记录下来,在下次Redis重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了3:RD...原创 2018-08-01 22:10:39 · 160 阅读 · 0 评论 -
redis学习笔记之六:Redis的事务
n 概述Redis中的事务就是一组命令的集合,被依次顺序的执行,当然你可以放弃事务的执行,那么所有事务里面的命令都不会执行。关于Redis的事务有几点说明:1:Redis的事务仅仅是保证事务里的操作会被连续独占的执行,因为是单线程架构,在执行完事务内所有指令前是不可能再去同时执行其他客户端的请求的2:Redis的事务没有隔离级别的概念,因为事务提交前任何指令都不会被实际执行,也就不存...原创 2018-08-01 22:12:55 · 132 阅读 · 0 评论 -
redis学习笔记之七:Redis发布订阅
n 发布订阅模式的操作命令1:publish:发布消息,格式是publish channel 消息2:subscribe:订阅频道,格式是subscribe channel,可以是多个channel3:psubscribe:订阅频道,格式是psubscribe channel,支持glob风格的通配符3:unsubscribe:取消订阅,格式是unsubscribe channel,不指定...原创 2018-08-02 16:53:35 · 189 阅读 · 0 评论 -
redis学习笔记之八:Redis数据复制(主从)
n 复制Redis支持复制的功能,以实现当一台服务器的数据更新后,自动将新的数据同步到其它数据库。Redis复制实现中,把数据库分为主数据库master和从数据库slave,主数据库可以进行读写操作,从数据库一般是只读的,当主数据库数据变化的时候,会自动同步给从数据库。n 复制带来的好处1:可以实现读写分离2:利于在主数据库崩溃时的数据恢复n 复制的配置主数据库不做配置;从...原创 2018-08-02 18:14:13 · 252 阅读 · 0 评论 -
redis学习笔记之十七:Redis的Java客户端
n Redis官方推荐的Java客户端是jedis网址:https://github.com/xetorthio/jedisn 构建开发环境,在Maven中添加<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><versio...原创 2018-09-05 11:12:18 · 152 阅读 · 0 评论