redis
Burie
这个作者很懒,什么都没留下…
展开
-
redis订阅发布
Redis 发布订阅Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。三个角色:消息发送者、频道、订阅者![在这里插入图片描述](https://img-blog.csdnimg.cn/20210410174813711.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly原创 2021-04-10 18:09:49 · 312 阅读 · 0 评论 -
redis持久化存储RDB+AOF
一、redis持久化redis是内存数据库,如果不把内存中的数据存储到磁盘中,那么一旦服务进程退出,服务器中的数据库状态也会消失。所以redis提供了持久化存储。1.1什么是RDB???RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。1.2自定义某时间内更改n次数据就备份(满足save条件)vim redis.conf#save 900 1 #save 300 10#save 60 10000#注释掉默认值自定义持久化存储策略save原创 2021-04-10 01:23:04 · 417 阅读 · 0 评论 -
redis基本事务操作+实现乐观锁(watch)
一、什么是原子性??同时失败或者同时成功!!理解如下:原子性即是,A原有5块石头,B原有3块石头;现有如下操作:A让C给予B一块石头,那么应该发生的事情有,A失去一块石头,变为4块,B得到一块石头变为5块;此时交易成功。不排除有意外情况,比如C在给予B的过程中,B出门了,那么,我们称这个操作失败了,要进行回滚。回滚就是回到事务开始之前的状态,A还是5块石头,B还是4块石头。我们把这种要么一起成功(A帐户成功减少一块石头,同时B得到一块石头),要么一起失败(A回到原来状态,B也回到原来状态)的操原创 2021-04-08 21:30:56 · 374 阅读 · 0 评论 -
redis的三种特殊类型之Hyperloglog+Bitmap
Hyperloglog是基于基数的算法来统计的什么是基数???基数(cardinal number)在数学上,是集合论中刻画任意集合大小的一个概念。两个能够建立元素间一一对应的集合称为互相对等集合。例如3个人的集合和3匹马的集合可以建立一一对应,是两个对等的集合。使用优点:占用固定的内存空间,2^64不同元素的技术,只需要12kb内存。使用场景:如果允许容错:比如统计页面的访问次数(一个人多次访问,但还是算作一个人的访问)不累计叠加,传统的方式是使用set保存用户的id,一旦为uuid的话那么id较原创 2021-04-06 23:23:17 · 271 阅读 · 0 评论 -
redis的三种特殊类型之Geospatial地理位置
如下使用 GEOADD命令一次添加各个城市的精度+维度(规则:两级无法直接添加,一般会直接下载城市数据,直接通过java程序直接一次性导入)参数key 值经度和纬度有效的经度:-180 ~ +180 有效的纬度:-85.05 ~ +85.05当设置的经度纬度值超过范围会报错:GEOADD china:city 109.29315 100 yulin(error) ERR invalid longitude,latitude pair 109.293150,100.000000原创 2021-03-31 23:30:59 · 246 阅读 · 0 评论 -
redis类型之有序集合zset
两种数据类型Set和ZSet基本上是一种,ZSet就是给Set加了个排序而已(相当于加了个属性)。Set是通过Hash表实现,增删改的查找复杂度都是O(1)。ZSet相当于Set的升级版本。演示如下:意思就是在插入值时需要打个标签,指定插入值的位置(1:表示的就是位置标签)添加三个用户127.0.0.1:6379> ZADD name 1 one (integer) 1127.0.0.1:6379> ZADD name 2 two(integer) 1127.0.0.1:6原创 2021-03-31 22:32:10 · 129 阅读 · 0 评论 -
redis类型之Hash(哈希)
相当于map集合,之前都是key-value,现在是key-map,本质和string类型区别不大以h开头的命令!!!127.0.0.1:6379> flushdbOK127.0.0.1:6379> hset hash filed value1 set一个具体key-value(integer) 1127.0.0.1:6379> hget hash filed 获取一个字段值"value1"127.0.0.1:6379> hmset hash filed hel原创 2021-03-31 22:01:40 · 187 阅读 · 0 评论 -
redis类型之set集合
set中的值是不能重复读的set命令都是s开头的127.0.0.1:6379> flushdb OK127.0.0.1:6379> sadd name a1 插入(integer) 1127.0.0.1:6379> sadd name a1 b1 c1 再次插入a1已经存在(integer) 2 只插入了两个,a1重复127.0.0.1:6379> smembers name 获取指定set的所有值1) "c1"2) "b1"3) "a1"1原创 2021-03-30 23:08:13 · 81 阅读 · 0 评论 -
redis类型之list列表
列表相当于队列所有的list命令都是以L开头插入、获取127.0.0.1:6379> flushall 清空所有OK# 依次插入:a b c127.0.0.1:6379> lpush name a 往列表里面插入值(integer) 1127.0.0.1:6379> lpush name b 插入b(integer) 2127.0.0.1:6379> lpush name c 插入c(integer) 3127.0.0.1:6379>原创 2021-03-29 22:59:31 · 86 阅读 · 0 评论 -
redis类型之字符串
字符串string127.0.0.1:6379> exists name 判断key存在(integer) 1127.0.0.1:6379> append name hello 追加命令append(若key不存在,则相当于set新建key) 给name追加hello 字符串 (integer) 10 字符串长度10127.0.0.1:6379> get name 获取key"luhanhello"127.0.0.1:6379> strl原创 2021-03-21 17:45:11 · 76 阅读 · 0 评论 -
redis一部署配置启动
一、redis的基础配置和操作redis默认会在/usr/local/bin下创建文件,需要把解压包里面的redis.conf文件拷贝到/usr/local/bin/redis-start/此目录下(目录是新建的)切记一定要把redis.conf 文件中的第136行更改: daemonize yes允许后台启动...原创 2021-03-21 17:44:29 · 174 阅读 · 0 评论 -
redis6.0.6版本安装部署
1.获取软件包redis-6.0.6.tar.gz2.安装gccRedis6.0以上对gcc版本有要求(5.3)以上查看gcc版本是否在5.3以上,centos7.6默认安装4.8.5gcc -v # 查看gcc版本号升级gcc获取软件包并安装(网址pkgs.org下载)centos-release-scl-rh-2-3.el7.centos.src.rpmdevtoolset-9-binutils-2.32-16.el7.x86_64.rpmdevtoolset-9-gcc-9.3原创 2020-11-18 09:50:38 · 2175 阅读 · 0 评论