1.2特殊数据类型
Bitmap
setbit
getbit
bitcount
setbit key offset value其中 offset 必须是数字,value 只能是 0 或者 1 这个命令的返回值是修改前的值
setbit byte0 0 1;
setbit byte0 2 1;
setbit byte0 5 1;
setbit byte1 1 1;
setbit byte1 4 1;对应内存中的值: 
可以看出 bit 的默认值是 0,那么 Bitmap 在实际开发的运用呢?
这里举一个例子:储存用户在线状态
这里只需要一个 key,然后把用户 ID 作为 offset,如果在线就设置为 1,不在线就设置为 0
//设置在线状态
$redis->setBit online 0 1;
//设置离线状态
$redis->setBit online 0 0;
//获取状态
$redis->getBit online 0;
//获取在线人数
$redis->bitCount online;Geo
geoadd
geopos
geodist
georadius
georadiusbymember
geohash
GEOADD
将给定的空间元素(纬度、经度、名字)添加到指定的键里面 这些数据会以zset的结构被储存在键里面
比如设置
key为Sicily(意大利亚西西里岛屿)
member1为Palermo(意大利西西里自治区首府 巴勒莫)
member2为Catania(意大利西西里大区卡塔尼亚省首府 卡塔尼亚)
GEOPOS
返回经纬度
GEODIST
返回两个位置之间的距离,unit必须为m km mi英里 或 ft英尺
GEORADIUS
以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素
WITHDIST
在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回
距离的单位和用户给定的范围单位保持一致
WITHCOORD
将位置元素的经度和维度也一并返回
HyperLogLog
这个结构可以非常省内存的去统计各种计数,比如注册 IP 数、每日访问 IP 数、页面实时UV、在线用户数等
但是它也有局限性,就是只能统计数量,而没办法去知道具体的内容是什么
PFADD
PFCOUNT
PFMERGE
PFADD
PFCOUNT
PFMERGE
将多个 HyperLogLog 合并为一个 HyperLogLog
合并后的 HyperLogLog 的基数接近于所有输入 HyperLogLog 的可见集合的并集
合并得出的 HyperLogLog 会被储存在 destkey 键里面
如果该键并不存在,那么命令在执行之前, 会先为该键创建一个空的 HyperLogLog
最后更新于