![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
文章平均质量分 60
一只猪的思考
兴趣使然,随缘更新
展开
-
Redis集群
1.问题容量不够,redis如何进行扩容?并发写操作, redis如何分摊?另外,主从模式,薪火相传模式,主机宕机,导致ip地址发生变化,应用程序中配置需要修改对应的主机地址、端口等信息。之前通过代理主机来解决,但是redis3.0中提供了解决方案。就是无中心化集群配置。2. 什么是集群Redis 集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N。Redis 集群通过分区(partition)来提供一定程度的可用性原创 2021-05-02 19:18:47 · 34338 阅读 · 0 评论 -
redis哨兵模式(sentinel)
1.是什么反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库2.使用步骤1. 调整为一主二仆模式,6379带着6380、63812. 自定义的/myredis目录下新建sentinel.conf文件,名字绝不能错3. 配置哨兵,填写内容sentinel monitor mymaster 127.0.0.1 6379 1其中mymaster为监控对象起的服务器名称, 1 为至少有多少个哨兵同意迁移的数量。4. 启动哨兵/usr/loca原创 2021-05-02 17:57:01 · 243 阅读 · 1 评论 -
Redis 主从复制
1. 是什么主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主2. 能干嘛读写分离,性能扩展容灾快速恢复3.主从复制需要哪些准备拷贝多个redis.conf文件include(写绝对路径)开启daemonize yesPid文件名字pidfile指定端口portLog文件名字dump.rdb名字dbfilenameAppendonly 关掉或者换名字(1)新建redis6379.conf,填写以下内容转载 2021-05-02 17:00:58 · 68 阅读 · 0 评论 -
Redis持久化之AOF
1. 是什么以日志的形式来记录每个写操作(增量保存),将Redis执行过的所有写指令记录下来(读操作不记录), 只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis 重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作2.AOF持久化流程(1)客户端的请求写命令会被append追加到AOF缓冲区内;(2)AOF缓冲区根据AOF持久化策略[always,everysec,no]将操作sync同步到磁盘的AOF文件中;(3)AOF文件大原创 2021-05-02 16:17:50 · 396 阅读 · 1 评论 -
Redis持久化之RDB
1.官网介绍2. 是什么在指定的时间间隔内将内存中的数据集快照写入磁盘, 也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里3.备份是如何执行的Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到 一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能 如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点原创 2021-05-02 15:42:10 · 274 阅读 · 0 评论 -
Redis 事务 锁机制 秒杀
1. Redis的事务定义Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。Redis事务的主要作用就是串联多个命令防止别的命令插队。2. Multi、Exec、discard从输入Multi命令开始,输入的命令都会依次进入命令队列中,但不会执行,直到输入Exec后,Redis会将之前的命令队列中的命令依次执行。组队的过程中可以通过discard来放弃组队。案例:组队成功,提交成功组队阶段转载 2021-05-02 15:18:51 · 108 阅读 · 0 评论 -
redis用Java代码操作之Jedis用法
1. Jedis所需要的jar包<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.2.0</version></dependency>连接Redis注意事项禁用Linux的防火墙:Linux(CentOS7)里执行命令systemctl stop/disable firewa原创 2021-05-02 11:59:14 · 244 阅读 · 0 评论 -
HyperLogLog详解
HyperLogLog简介在工作当中,我们经常会遇到与统计相关的功能需求,比如统计网站PV(PageView页面访问量),可以使用Redis的incr、incrby轻松实现。但像UV(UniqueVisitor,独立访客)、独立IP数、搜索记录数等需要去重和计数的问题如何解决?这种求集合中不重复元素个数的问题称为基数问题。解决基数问题有很多种方案:(1)数据存储在MySQL表中,使用distinct count计算不重复个数(2)使用Redis提供的hash、set、bitmaps等数原创 2021-05-02 11:37:20 · 942 阅读 · 0 评论 -
Bitmaps详解
Bitmaps简介现代计算机用二进制(位) 作为信息的基础单位, 1个字节等于8位, 例如“abc”字符串是由3个字节组成, 但实际在计算机存储时将其用二进制表示, “abc”分别对应的ASCII码分别是97、 98、 99, 对应的二进制分别是01100001、 01100010和01100011,如下图合理地使用操作位能够有效地提高内存使用率和开发效率。Redis提供了Bitmaps这个“数据类型”可以实现对位的操作:(1) Bitmaps本身不是一种数据类型, 实际上它就是字符串(原创 2021-04-20 22:29:44 · 2569 阅读 · 0 评论 -
Redis GEO
简介Redis GEO 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 版本新增。Redis GEO 操作方法有:geoadd:添加地理位置的坐标。geopos:获取地理位置的坐标。geodist:计算两个位置之间的距离。georadius:根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。georadiusbymember:根据储存在位置集合里面的某个地点获取指定范围内的地理位置集合。geohash:返回一个或多个位置对象的 geohash 值。原创 2021-04-18 23:11:36 · 92 阅读 · 0 评论 -
ZSET 详解
添加操作127.0.0.1:6379> zadd myset 1 one(integer) 1127.0.0.1:6379> zadd myset 2 two(integer) 1127.0.0.1:6379> zadd myset 3 three 4 four(integer) 2查询操作127.0.0.1:6379> zrange myset 0 11) "one"2) "two"从小到大排127.0.0.1:6379> ZRANGEBYSC原创 2021-04-18 20:38:59 · 375 阅读 · 0 评论 -
redis hash详解
hash的添加删除展示操作127.0.0.1:6379[2]> hset myhash field1 1 field 2 #添加(integer) 2127.0.0.1:6379[2]> hgetall myhash #展示1) "field1"2) "1"3) "field"4) "2"127.0.0.1:6379[2]> hdel myhash field1 #删除(integer) 1127.0.0.1:6379[2]> hgetall(error) ER原创 2021-04-01 22:37:54 · 206 阅读 · 0 评论 -
redis set详解
set增删查操作127.0.0.1:6379[2]> sadd myset hello #添加操作(integer) 1127.0.0.1:6379[2]> sadd myset hello1 hellow(integer) 2127.0.0.1:6379[2]> smembers myset #展示所有元素1) "hellow"2) "hello"3) "hello1"127.0.0.1:6379[2]> sismember myset hello #判断元素是否原创 2021-04-01 22:14:56 · 1386 阅读 · 0 评论 -
redis list详解
list插入信息操作所有list命令都是有l开头的127.0.0.1:6379[2]> keys *(empty array)127.0.0.1:6379[2]> lpush list one #插入操作(integer) 1127.0.0.1:6379[2]> lpush list two(integer) 2127.0.0.1:6379[2]> lpush list three(integer) 3127.0.0.1:6379[2]> lrange li原创 2021-04-01 21:37:37 · 145 阅读 · 0 评论 -
宝塔使用redis-benchmark测试Redis性能
宝塔linux环境下使用./redis-benchmark测试redis性能1.切换到redis/src目录下cd www/server/redis/src不切换到目录可能出现以下问题redis-benchmark: command not found./redis-benchmark: No such file or directory2.执行./redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 10000 -t set./re原创 2021-04-01 20:14:41 · 422 阅读 · 0 评论 -
redis String类型详解
redis常用命令[root@liu ~]# redis-cli -p 6379127.0.0.1:6379> keys * #查询所有key1) "key:__rand_int__"2) "myhash"3) "name"4) "counter:__rand_int__"5) "mylist"127.0.0.1:6379> flushall #删除所有键OK127.0.0.1:6379> keys *(empty array)127.0.0.1:6379>原创 2021-04-01 20:12:52 · 116 阅读 · 0 评论