Redis
文章平均质量分 76
黑衣如墨剑如雪
人生在世,你只要知道两件事。一,这世上绝对存在不需要读书也很聪明,不需要努力也过得很好,甚至不需要钱就能快乐的人。二,那个人绝对不是你。
展开
-
mysql数据库数据导入redis
本文介绍下怎么样将mysql数据库数据导入redis。【docker安装mysql】,创建test数据库,建user表,随便填入几条数据测试用,如下所示:确定实现思路1)、存储数据类型hash数据类型。hset key field1 value1field2value2 ...,就上面这个表,以user:id为key,列名为field,具体值为value;2)、导入数据...原创 2019-10-19 14:53:15 · 1392 阅读 · 0 评论 -
Redis的slowlog
slowlog的概念slowlog指的是慢查询日志。redis的主线程是单线程的,会将所有命令按照请求时间的先后存放到队列中,当某一时刻接收到的命令足够多,来不及处理时,如果队列中某一条命令执行时间(相对来说)非常久,意味着redis主线程会阻塞一段时间,于是就会出现性能问题。redis会将执行时间超过某个值(默认为10ms)的命令记录下来,我们可以通过分析优化记录中的命令,达到提高redis...原创 2019-10-16 19:49:34 · 700 阅读 · 0 评论 -
Redis持久化之RDB
redis有两种持久化方式,RDB和AOF。RDB是Redis默认的持久化方式。什么是RDB?RDB持久化是指Redis在指定时间间隔内执行指定次数的写操作时,会将存储在内存上的数据通过快照的方式写入到二进制文件中,默认文件名为dump.rdb,当然,这个文件是可以在配置文件中进行自定义配置的。RDB的实现原理RedisRDB持久化的两种策略:save和bgsave(backgro...原创 2019-05-26 23:55:23 · 441 阅读 · 1 评论 -
Redis持久化之AOF
AOF是Redis的另一种持久化方式。什么是AOF?AOF是指Redis会将每一个接收到的写命令通过write函数追加到文件(默认为appendonly.aof)中,因此,AOF有着比RDB更好的持久化性。当然AOF方式的持久化也有可能丢失部分修改。AOF的实现原理客户端发送写命令到服务端,服务端接收并执行一个写命令后,会以协议格式将被执行的写命令追加到aof_buf缓存区末尾,在...原创 2019-05-28 10:34:50 · 298 阅读 · 0 评论 -
Redis的主从复制
在redis服务器正常运行的情况下,它的持久化机制能够保证数据在服务器重启后不会丢失。但是如果发生故障,会导致数据丢失,另外,Redis服务器内存是固定大小的,单台redis服务器并不一定能够支撑你的服务。Redis的主从复制能够将单台服务器上的数据同步到另外的服务器上,能够有效的解决上述问题。redis主从复制结构在redis主从复制中,有两类服务器,一类是主服务器(master),另一...原创 2019-06-03 00:55:18 · 185 阅读 · 0 评论 -
Redis的发布与订阅
什么是发布与订阅?发布与订阅(pub/sub)是一种消息通信模式,目的是解耦消息发布者和消息订阅者之前的耦合,redis作为一个发布/订阅的服务器,在发布者和订阅者之间起到了消息路由的功能。Redis中的消息类型叫做通道(channel),一个客户端可以订阅多个通道,也可以向多个通道发送消息。如下图所示,加入有3个客户端(客户端A、客户端B、客户端C)订阅了频道1,那么当客户端1向频道1发...原创 2019-06-16 22:28:53 · 196 阅读 · 0 评论 -
Redis中的Sentinel
什么是Sentinel?sentinel(哨兵)监控redis的运行情况,保证了redis的高可用性。主要功能包括两个:1)、监控主服务器和从服务器是否正常运行;2)、主服务器出现故障时,从服务器自动切换成主服务器。一个sentinel实例可以监控任意多个主服务器,以及主服务器下从服务器;同样,也可以使用多个sentinel来监控一个(多个redis服务器组成的)redis系统。此时,多个se...原创 2019-06-30 21:42:12 · 548 阅读 · 2 评论 -
Redis伪集群搭建
什么是redis集群?redis集群是redis提供的分布式数据方案,可以在多个redis节点之间进行数据共享。它通过分片来提供一定程度的可用性,即使集群中有一部分节点失效或者无法进行通信,集群也能继续处理命令请求,并提供复制和故障转移功能。伪集群环境搭建使用虚拟机128,使用端口7001~7006。第一步:新建文件夹,将redis安装包放到文件夹下。[root@localh...原创 2019-07-16 21:59:24 · 401 阅读 · 0 评论 -
Redis性能测试
Redis的数据存在内存中,读写性能高。读的速度是110000次/s,写的速度是81000次/s。但是,这并不意味着你搭建的redis服务性能就是这样的。你必须做性能测试,才能知道你搭建的服务性能如何(或者领导问你时,你才能够说有理有据的说明白)。Redis服务搭建后,也是需要进行性能测试,了解了其性能后,满足项目需求才能投入使用的。Redis提供了专门用来做测试的可执行文件redis-ben...原创 2019-08-05 00:33:06 · 1098 阅读 · 0 评论 -
Redis的集群搭建
redis集群搭建和之前写的redis伪集群搭建基本是一样的,区别在于集群由多个服务器上搭建,伪集群则在单个服务器上搭建多个节点。集群搭建也可以参考【Redis伪集群搭建】准备工作:准备3台服务器(或者3个虚拟机),我准备的3个服务器:192.168.0.24、192.168.0.111、192.168.0.58,相互之前是可以通信的。当然,如果你服务器(或虚拟机)足够多,你也可以每个服务...原创 2019-08-04 23:43:07 · 243 阅读 · 0 评论 -
JAVA项目集成redis集群
一、环境搭建我这里直接使用搭建集群后的环境,【Redis的集群搭建】查看下集群节点信息[root@*** redis-cluster]# ./redis-5.0.4/src/redis-cli -h 192.168.0.24 -p 8001192.168.0.24:8001> cluster nodese80b66392e8c56b46ca9c899056f4d3be15d...原创 2019-10-13 21:35:21 · 881 阅读 · 0 评论 -
Redis的应用场景
redis应用十分广泛,下面介绍下redis的应用场景。key的设计原则简短明了,节省内存;统一形式,eg:功能:业务主键,一看到key就能知道是属于什么模块的。value的设计原则尽可能的简短。value值越大,执行速度越慢。对于value过大的考虑是否可以分割。eg:使用key来记录某商城一天的成交记录,如果value值太大,考虑使用key:01~key:24来记录每小时的成交...原创 2019-10-15 23:16:14 · 266 阅读 · 0 评论 -
Redis重启时加载持久化文件
在redis的实际使用过程中,可以将RDB持久化和AOF持久化同时使用,RDB用于灾难数据恢复(快速的数据恢复),AOF用于服务器重启数据恢复(AOF保证据不丢失)。【Redis持久化之RDB】【Redis持久化之AOF】如果redis只存在RDB文件或者AOF文件,重启时肯定是加载这个文件即可,同时存在RDB文件和AOF文件时,redis重启时加载持久化文件的顺序是怎么样的呢?加...原创 2019-10-10 22:55:12 · 1722 阅读 · 4 评论 -
Redis的安全性
Redis安全的前提是:Redis运行在可信环境,在安全方面。Redis没有做太多的工作,而是尽最大可能去优化高性能和易用性。这意味着将Redis实例直接暴露在网络上或者让不可信用户可以直接访问Redis的tcp端口或Unix套接字,是不安全的。也就是说,在生产环境中,不允许外界直接连上Redis。1、Redis配置文件中的bind参数可限制访问服务器的地址(redis服务器的ip)12...原创 2019-05-23 19:55:47 · 660 阅读 · 0 评论 -
Redis中的排序
Redis有着list、set、zset等数据类型,对数据进行存储时非常方便,这些数据类型也有着许多功能强大的操作命令,但是其返回结果是无序的,而Redis中的排序命令(sort)则可以对list、set、zset等类型的key进行排序,可以实现与关系数据库中查询类似的功能。命令:sort key [BY pattern] [LIMIT offset count] [GET pattern [...原创 2019-05-23 00:25:53 · 2684 阅读 · 0 评论 -
Redis的事务处理
Redis中的事务是一组命令(multi、exec、discard、watch等)的集合。事务中的命令要么一起执行,要么都不执行,事务和命令一样是最小的执行单位。事务执行过程中,不会中断事务而去执行其他客户端的命令请求,discard命令用作取消事务,事务回滚。命令:multi,开始事务;命令:exec,提交事务;127.0.0.1:6379> multiOK127.0.0...原创 2019-05-21 21:57:38 · 325 阅读 · 0 评论 -
Redis中的转向和故障恢复
MOVED错误redis客户端执行命令,单机模式下,节点发现命令中的槽并非自己负责时,会返回MOVED错误,指引操作人员切换到正在负责该槽的节点。当然,在集群模式下,MOVED错误并不会打印并且会根据MOVED错误自动切换节点。举个例子:[root@*** cluster]# ./redis-5.0.4/src/redis-cli -p 7001127.0.0.1:7001>...原创 2019-07-29 19:39:16 · 1921 阅读 · 0 评论 -
Redis集群中的节点操作
添加节点1)、启动添加的节点,新增7007、7008节点[root@*** cluster]# mkdir 7007[root@*** cluster]# cp 7001/redis7001.conf 7007/redis7007.conf[root@*** cluster]# vim 7007/redis7007.conf [root@*** cluster]# mkdir 7...原创 2019-07-29 19:44:58 · 504 阅读 · 2 评论 -
简单了解关系型数据库与非关系型数据库
什么是数据库?数据库,即数据的集合,是按照数据结构来组织、存储和管理数据的仓库。什么是关系型数据库?RDBMS,关系型数据库是指依据关系模型来创建的数据库,主要用于储存结构化的数据。关系模型包括一对一、一对多、多对多等,举个简单的例子:一个学校有很多个班级,学校与班级的对应关系就是一对多;一个班级有多个老师和多个学生,老师与学生的对应关系是多对多;每个学生有一个学号,学生与学号的...原创 2018-12-16 21:10:11 · 510 阅读 · 0 评论 -
简单了解Redis
什么是Redis? Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis有哪些优点?1、支持多种数据类型。常见的:string(字符串)、list(列表) 、hash(散列) 、sets (集合) 、sorted set(有序集合)。2、数据存在内存中,读写性能高。理论...原创 2018-12-17 23:35:58 · 232 阅读 · 0 评论 -
ssm框架的maven web项目集成redis服务
一、Linux下redis的安装 单台安装,测试用 打开【Redis】,找到Installation ,有详细的安装、启动和简单测试的命令;或者参考【linux下安装redis】二、整合redis服务 下面就是在study项目中整合redis服务(根据自己的项目进行相应的修改): 1、pom.xml文件中增加redis需要的jar包配置 <properti...原创 2018-12-18 12:37:48 · 521 阅读 · 0 评论 -
Linux下安装redis
简单讲下怎么样在linux下安装redis.我是参考上一篇文章,搭建了一个虚拟机环境,NAT模式,使用的镜像是CentOS-6.6-i386-bin-DVD1.iso,创建的虚拟机ip为127.0.0.1,修改ip,参考:【处理centos 7 linux虚拟机 ip 127.0.0.1问题】单台安装,测试用,安装到/opt目录下怎么样登录到linux环境略过,emmm, 我用的xs...原创 2018-12-27 23:22:16 · 140 阅读 · 0 评论 -
Redis的配置文件
Redis的配置在redis的安装目录下的redis.conf中,如下所示使用命令cat redis.conf 进行查看,vi redis.conf 或者vim redis.conf进行编辑文件内容如下:# Redis configuration file example.# Redis配置## Note that in order to read the configur...原创 2019-02-21 23:56:52 · 760 阅读 · 0 评论 -
Redis的数据类型(一)——String
Redis支持五种数据类型:String(字符串)、hash(哈希)、list(列表)、set(集合)及zset(有序集合)。String类型String 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。命令:set key value,赋值命令:get key,取值127.0.0.1:6379> set su testOK12...原创 2019-05-16 20:10:35 · 151 阅读 · 0 评论 -
Redis的数据类型(二)——Hash
hash 是一个键值(key=>value)对集合。hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储JSON序列化形式的对象。它提供了字段和字段值的映射。字段值只能是字符串类型,不支持散列类型、集合类型等其它类型。如下:命令:hset key field value,一次只设置一个field,hset命令可用作新增和更新,新...原创 2019-05-16 20:11:05 · 156 阅读 · 0 评论 -
Redis的数据类型(三)——List
Redis的list是采用链表(简单的字符串列表)来存储的,允许出现重复元素,一个list中最多存放2的32次方减1个元素。Redis的list数据类型的操作,其实是通过操作list的两端数据来完成的。对于链表来说,头尾元素操作的效率都非常高,中间元素操作的效率则比较低。命令:lpush key value [valus...],从list左边增加元素(list不存在则新增);命令:rpus...原创 2019-05-16 20:11:40 · 163 阅读 · 0 评论 -
Redis的数据类型(四)——Set
Redis的Set是string类型的无序集合,不允许有重复元素,一个集合中最多2的32次方减1个元素。命令:sadd key member [member…],向集合中添加元素,已存在的元素不会再添加127.0.0.1:6379> sadd set1 a (integer) 1127.0.0.1:6379> sadd set1 a b c(integer) 2命令...原创 2019-05-19 17:58:47 · 112 阅读 · 0 评论 -
Redis的数据类型(五)——Zset
zset是有序集合,不允许出现重复元素(member),每一个元素都有一个double类型的分数(score),有序集合内的元素正是通过这个分数来进行从小到大的排序。命令:zadd key [NX|XX] [CH] [INCR] score member [score member ...],向有序集合中添加元素,score用来排序,如果该元素存在,则更新其顺序。命令:zrange key...原创 2019-05-19 23:50:17 · 377 阅读 · 0 评论 -
Redis常用命令(键值相关)
前面几篇文章分别写了Redis不同数据类型使用的命令,这篇文章中的命令适用Redis的所有数据类型。命令:keys patten,获取符合规则的键名列表。patten指通配符格式,规则如下:* 表示匹配任意字符,也就是说会查询出所有key。127.0.0.1:6379> keys * 1) "zset" 2) "set1" 3) "ceshi" 4) "list1"...原创 2019-05-21 00:27:18 · 297 阅读 · 0 评论 -
Redis的槽分配
集群节点的槽分配信息槽(slots)数据结构实际上是一个二进制数组,数组长度为2048个字节,16384个二进制位。Redis集群通过分片的方式来保存数据库中的键值对。集群的整个数据库被分为16384个槽,即数据库中的所有键都属于这16384个槽中的一个。集群中每个节点可以处理0~16384个槽。Redis将每个键键名的有效部分使用CRC16算法计算出散列值,然后对16384取余,保证每个...原创 2019-07-28 22:53:08 · 6285 阅读 · 0 评论