
redis
yqs_281876918
tnnd
展开
-
redis 哨兵模式配置
书接上文:启用哨兵模式的方法1、修改sentinel.conf的配置protected-mode no #禁止保护模式sentinel monitor mymaster 127.0.0.1 6379 1#配置监听的主服务器,sentinel monitor代表监控,mymaster代表服务器的名称,随便起一个,127.0.0.1代表监控的主服务器,一般是一个公网ip,用127.0.0.1只是为了本地测试,6379代表端口,1代表只有1个或1个以上的哨兵认为主服务器不可用的时候,才会进行failo原创 2022-01-06 20:53:56 · 1610 阅读 · 0 评论 -
redis 主从配置
“仅供自己记录用”修改以下配置:replicaof <masterip> <masterport>masterauth <master-password>原创 2022-01-06 19:25:23 · 436 阅读 · 0 评论 -
redis 发布者订阅者
首先盗用一张图(原文:https://www.bilibili.com/video/BV1S54y1R7SB?p=30),描述了redis的订阅发布模型,比较容易理解:整个消息队列操作起来也是比较简单,首先是订阅端执行:subcribe 频道名指令,然后发布端调用:publish 频道名 具体消息 即可实现消息的发布。需要注意的是客户端订阅一个频道后会一直在这个频道中,不能继续执行其它命令,这是因为redis是单线程的,有网络编程的小伙伴应该会比较清楚,tcp的消息传输是阻塞的。...原创 2022-01-06 18:38:40 · 598 阅读 · 0 评论 -
redis AOF缓存
AOF和RDB都是redis的缓存方案。RDB的思路是把内存中的缓存数据存到文件中,下次再打开redis服务时就重新加载到内存中去。而AOF的思路是把服务器执行过的命令(读命令不算,因为读命令不会修改任何数据)都记录下来,存到文件中,下次再打开redis服务时就照着命令从之执行到尾,就可以达到恢复数据的目的。这种方式的弊端在于如果指令量比较大,那么恢复过程会很消耗时间。如何使用AOF?redis默认是关闭AOF的,我们需要在配置文件中将appendonly配置项设置为yes后,重启一下redis服务原创 2022-01-06 12:47:05 · 191 阅读 · 0 评论 -
redis RDB持久化
rdb(redis date base)是redis自带一种持久化策略,能够将内存中的缓存数据导出成.rdb(默认为dump.rdb)格式持久化到磁盘下,防止服务结束丢失数据。rdb持久化是一种比较高效的持久化,因为redis每次在持久化的时候都会新建一个子进程来进行持久化,所以持久化过程并不会影响到主进程效率。redis每次进行rdb持久化的时候都会覆盖掉旧的rdb文件,所以当redis服务出问题时候持久化也容易跟着出问题。如何使用rdb持久化功能?为了能正常使用rdb功能,只需在redis.co原创 2022-01-05 20:37:56 · 620 阅读 · 0 评论 -
redis linux下的基本配置
1、redis的配置文件中大小写不敏感2、include /xxx/xxx/xxx.conf可以引入包含一些其它的配置文件,相当于c语言中的include3、loadmodule /xxx/xxx/xxx.so可以加载一些模块,后缀名是so,相当于windows中的dll文件4、bind ip绑定ip地址,默认配置中只有一行bind 127.0.0.1,所以只有本地可以访问,如果想要别的ip能够访问,那么需要bind新的ip5、protected-mode yes保护模式,.原创 2022-01-04 23:06:35 · 1474 阅读 · 0 评论 -
springboot集成redis,并解决key value乱码问题
详见:https://github.com/yqs-281876918/redis-springboot原创 2022-01-04 21:37:43 · 323 阅读 · 0 评论 -
redis 实现乐观锁
redis是单线程程序但是支持多进程同时访问同一个redis服务。这个时候就需要锁机制来处理一些并发问题。redis提供了watch指令来实现乐观锁。watch和事务配合使用,往往写在multi之前,用来监视一个key,比如watch money。那么在接下来的事务被exec之前,如果money这个key的值被其它进程改动,那么这个事务就会放弃执行,以保证不会出现并发问题。如在进程A输入以下命令:set money 100watch moneymulti命令1命令2命令3…这个时候我们先原创 2022-01-03 21:48:30 · 701 阅读 · 0 评论 -
redis 事务机制
redis事务有三个特性:1、一次性。一个事务只会执行一次,执行完毕事务就不存在了(个人理解,有误望指正)。2、顺序性。命令的执行顺序和入队顺序一致。3、排他性。事务执行时不会被其它事务打断。重点:redis事务不保证原子性,具体下面会讲。127.0.0.1:6379> multi//开启事务OK127.0.0.1:6379(TX)> set name yqsQUEUED127.0.0.1:6379(TX)> set age 21QUEUED127.0.0.1:63原创 2022-01-03 19:41:34 · 262 阅读 · 0 评论 -
redis bitmaps位存储
bitmaps主要提供位存储功能和统计1的个数功能。能用于用户打卡,用户活跃天数等场景使用。setbit可以设置位getbit可以读取位bitcount则统计1的个数127.0.0.1:6379> setbit bits 0 1//第0位设置为1(integer) 0127.0.0.1:6379> setbit bits 1 0//同理(integer) 0127.0.0.1:6379> setbit bits 2 0//同理(integer) 0127.0.0.1:原创 2022-01-03 18:49:33 · 174 阅读 · 0 评论 -
redis Hyperloglog基数统计
Hyperloglog是redis提供的一种类型,专门用来做基数统计,直白说就是统计一堆数据中有多少不重复的数据。Hyperloglog的优点是占用空间小;缺点是有误差,大概为0.81%,但是在大数据面前可以忽略不计。127.0.0.1:6379> pfadd set1 1 2 3 4 5 6 7 8 9//添加查询集(integer) 1127.0.0.1:6379> pfadd set2 7 8 9 10 11 12 13 14//再添加一个(integer) 1127.0.0原创 2022-01-03 18:33:24 · 800 阅读 · 0 评论 -
redis geospatial地理位置类型操作
geoadd key longitude latitude member往地图中添加经度为longitude纬度为latitude名称为member的位置信息注意:南北极圈内的地点是不能往里面添加的geopos key member获取key中member的经纬度信息geodist key member1 member2 [m|km|ft|mi]获取key中两个地点的距离,单位可以选择m km ft mi其中一种比如geodist china:city shanghai beijin.原创 2022-01-02 22:16:06 · 169 阅读 · 0 评论 -
redis zset有序集合常用操作
zadd key score member [score member …]在一个有序集合中添加一系列元素,其中score表示元素的权值,用来进行排序,member表示元素具体的值ZRANGEBYSCORE key min max [WITHSCORES]显示集合中min到max区间内的所有元素,如果有WITHSCORES,那么会附带输出权值。ZRANGEBYSCORE key (5 (100 默认是闭区间,加(可以变成开区间,也就是(5,100)zrange key min max.原创 2022-01-01 00:23:03 · 217 阅读 · 0 评论 -
redis hash哈希类型常用操作
hset key field value [field value …]hmset key field value [field value …]两个一样,都是向哈希表中添加一些键值对hget key field原创 2021-12-30 21:37:58 · 266 阅读 · 0 评论 -
redis set集合类型常用操作
sadd key member [member …]向集合中添加一个或多个成员,如果有重复的话会自动去重smembers key查看集合的所有元素ismember key member判断集合中是否存在某个元素,存在返回1,不存在返回0scard key获取集合的元素个数srem key member [member …]从集合中移除一系列值SRANDMEMBER key [count]从集合中随机获取count个元素,缺省的话默认为1个spop key [.原创 2021-12-30 17:05:17 · 240 阅读 · 0 评论 -
redis list列表类型操作
lpush key element1 [element2 element3 …]向key对应的列表头部插入一个或多个元素,如 lpush list1 abc abd 5 6rpush key element1 [element2 element3 …]和上一个一样,只不过是插入到尾部lrange key start stop获取key对应的列表在[start,top]区间的元素lpop key countrpop key count分别代表从头部弹出count个元素和从尾部弹.原创 2021-12-30 16:27:18 · 155 阅读 · 0 评论 -
redis string字符串类型操作
set key value将一个key设置为valueget key查看key的值append key value在一个key(value必须是string类型)的后面追加一串字符串,如果这个key不存在,那么这时候就和set等效了。strlen key查看key所对应的value的字符串长度incr key将key对应的value的值加1,注意这个value必须是纯数字的字符串,否则会报错decr key同理将key对应的value减1incrby key.原创 2021-12-30 15:45:16 · 202 阅读 · 0 评论 -
redis常用操作
select切换数据库(默认有16个),每个数据库的数据都是独立的如select 3表示切换为第4个数据库(从0开始计)DBSIZE查看当前数据库的数据量flush清空当前数据库的数据keys *查看当前的数据库的所有键FLUSHALL清除所有数据库数据...原创 2021-12-29 22:13:05 · 240 阅读 · 0 评论 -
linux下关闭redis服务
1、首先运行ps -ef|grep redis查看redis服务是否在运行2、用redis-cli(比如redis-cli -h 127.0.0.1 -p 6379)连接上想要关闭的那个redis服务3、连接成功后运行shutdown4、运行exit退出5、再次运行ps -ef|grep redis查看,发现redis服务已经关闭...原创 2021-12-29 18:10:30 · 6544 阅读 · 0 评论