目录
Redis配置文件redis.conf
limits限制
maxclients:
maxmemory-policy:
Redis的发布和订阅
发步频道(接收信息):subscribe channel
给频道发送消息:publish channel 消息
新数据类型
Bitmaps
案例:判断用户是否访问过该网站,访问为1,否则为0,我们将id作为用户的偏移量,以区分不同用户(对比上面来看)
案例:求两天都访问的用户数量 和 任意一天都访问过用户的数量(类似游戏的月活跃度)
Set和Bitmaps存储一条活跃用户所占内存对比
HyperLogLog
命令案例:
Greospatial
常见命令
Redis配置文件redis.conf
:绑定的ip,这里是主机,只有主机才能执行指令,若需远程需要注释;
:远程访问,还需要关闭保护模式,需要改为no
:tcp协议的b一个backlog(一个连接队列=未完成三次握手队列+已完成三次握手队列)
注意:在高并发环境下,需要一个高的backlog值来避免慢客户端连接问题
:意思如果你多长时间没有操作,就会超时,让你重新验证然后操作;
检测心跳,每过三百秒看你是否还活着
这里面保存了你的所有进程号:
设置日志级别 :
设置日志路径:(这里默认是/dev/null)
设置密码(改完后要重启redis)
在配置文件中找到requirepass,后面设置密码即可
limits限制
maxclients:
maxmemory-policy:
Redis的发布和订阅
跟security中的权限操作类似,有权限就可以得到对应的操作
发步频道(接收信息):subscribe channel
给频道发送消息:publish channel 消息
新数据类型
Bitmaps
意思就是每个值都有对应的偏移量(也就是下标)
案例:判断用户是否访问过该网站,访问为1,否则为0,我们将id作为用户的偏移量,以区分不同用户(对比上面来看)
注:第一次加载Bitmaps时,如果偏移量很大(意思就是用户很多),初始化过程会很慢
bitcount 键 start end :统计字符串(把它转化成对应的字节,比如abc代表三个字节,转为ascll为97 98 99,再转为8位的二进制...)从start到end中bit为1的数量
因为一字节是8位,所以说bitcount 键 1 2:下标为1和2的字节组(也就是16个位)中bit=1的个数(可以理解为位数)
bitcount 键 字节组1 字节组2:如果字节组有负数,-1代表最后一个,-2代表倒数第二个
案例:求两天都访问的用户数量 和 任意一天都访问过用户的数量(类似游戏的月活跃度)
bitop命令:
bitop and unique:users:and:20201104_3(两个时间都访问的) unique:users:20201103(3号访问的) unique:users:20201104(4号访问的)
如果是两天任意一条访问的用户:
将上述的and改为or即可;
Set和Bitmaps存储一条活跃用户所占内存对比
存储活跃用户用Bitmaps较好;
有利于节省内存,提高CPU的利用率;
Bitmaps主要针对位操作运算;
HyperLogLog
专门处理涉及基数问题:
一些解决基数问题的方案:
特点:
当输入的元素数量或者体积上非常大时,HyperLogLog起到了去重的作用
命令案例:
pfadd key value:将value添加到键key中
pfcount key: 计算key中值的个数
重复元素不会被添加
pfmerge newkey key1 key2 :将key1与key2 中的value全部放入新的键newkeyzhong
注意:HyperLogLog中是没有命令能够看value的;
HyperLogLog主要针对基数运算;
Greospatial
简介:
主要就是地理信息的内容
常见命令
geoadd 键(国家城市之类的) 经度 纬度 value(具体名称之类的)
geoadd china:city 经度 纬度 shanghai:给china:city这个键添加一个位置为xxx的value,名为上海;
greospatial也具有去重的效果,不能添加重复数据;
geopos china:city beijing:计算键china:city中的value值beijing的经纬度
geodist china:city chongqing shenzhen km: geodist计算键中两个value值重庆和深圳的举、距离,以km为单位;
个人觉得有点像附近的人....