Redis核心配置
- 服务端配置
daemonize yes|no //服务器是否已守护进程方式运行
bind 127.0.0.1 //绑定主机
port 6379 //设置端口
databases 16 //设置数据库数量
loglevel debug|verbose|notice|warning //设置日志级别
logfile 端口号.log //设置日志文件名
maxclients 1 //同一时间最大客户端连接数, 默认无限制, 超出后, redis关闭新的连接
timeout 300 //客户端闲置等待最大时长, 超出该时长后, 关闭连接, 关闭该功能可设置参数0
include path/server-端口.conf //当前配置文件加载包含path路径下的配置文件, 公共配置较多时可使用.
Redis高级数据
- Bigmaps
Bigmaps就是一个byte数组. 每一个byte表示1或者0, 使用场景: 大量数据, 且数据只有2中使用状态, 多个Bitmaps可以进行交, 并, 非, 异或运算.
Bigmaps基本操作
setbit key offset value //设置key的offset位上值为value
getbit key offset //获得offset位上的值
bitop op destKey key1 [key2 ...]op: and(交), or(非), not(非), xor(异或)
bitcount key start end //计算索引从start~end中1的数量(index从0开始)
- HyperLogLog
HyperLogLog类似于set, 用于基数统计, 相比于set, 具有更高的性能, 但是HyperLogLog只能记录数据数量, 不记录具体数据, 内部使用LogLog估算算法, 存在0.81%的标准误差. 使用场景: 独立数据统计.
HyperLogLog基本操作
pfadd key element [element ...] //添加数据
pfcount key key [key ...] //统计数据
pfmerge destKey sourceKey [sourceKey ...] //合并数据
**注: **
用于进行基数统计,不是集合,不保存数据,只记录数量而不是具体数据
核心是基数估算算法,最终数值存在一定误差
误差范围:基数估计的结果是一个带有 0.81% 标准错误的近似值
耗空间极小,每个hyperloglog key占用了12K的内存用于标记基数
pfadd命令不是一次性分配12K内存使用,会随着基数的增加内存逐渐增大
pfmerge命令合并后占用的存储空间为12K,无论合并之前数据量多少
- GEO
GEO存储地理坐标数据, 可以计算地理坐标经纬度, 距离等.
GEO基本操作
geoadd key longitude latitude member [longitude altitude member ...] //添加坐标信息.
geopos key member [member ...] //获取坐标信息.
geodist key member1 member2 [unit] //计算两个坐标点之间的距离.
georadius key longitude latitude radius m|km|ft|mi [withdist] [withhhash] [count num] //计算该坐标下半径为radius中元素个数, num代表返回最多数.
georadiusbymember key member radius m|km|mi [withcoord] [withdist] [withhash] [count num]//获取member成员为中心, 半径为radius内元素个数, 效果与georadius一样.
geohash key member [member ...] //计算member hash值m|km|ft|mi: 距离单位
withdist: 显示距离
withhhash: 坐标hash值