用于学习后的自己总结,如有错漏恳请指教
五中基本数据类型
null | string | list | hash | set | sort-set |
---|---|---|---|---|---|
设置变量 | set | lpush(头插法)\rpush(尾插法) | hset | sadd | zadd |
获取变量 | get | lpop\rpop | hget | smembers | |
获取长度 | strlen | llen | hlen | scard | zcard |
删除变量 | del | lrem | hdel | srem | zrem |
特殊操作 | |||||
null | incr/递增 | lindex/获取指定索引元素 | hscan/迭代键值对 | spop/移除返回一个随机元素 | zcount/统计score区间数量 |
null | incrby/加某个值 | lrang/获取指定范围 | hgetall/获取键值对 | sunion/sunionstore 并集/并集保存到指定集合 | zrange/zrevrange(大到小)返回指定集合 - withscores(带scores字段) |
null | append/字符串追加 | ltrim/保留指定位置元素 | hkeys/获取所有键 | sdiff/差(追加到某个集合和上面一样加个store) | zrank/返回排名 |
null | substr/截取字符串 | null | hvals/获取所有值 | sinter/交 |
高级数据类型
1、bitmaps
意义:前面的基本数据类型都是按字节来算,有时候觉得太浪费空间想要按位来算,应用于场景—学号为1的人是男生,学号为2的人是女生等等,那么可以0代表男生,1代表女生,那这个班级就是一串【01】字符串。(只能设置成0和1)
操作:
getbit:获取某一位的值
setbit:设置某一位的值,只能为0和1
bitcount:统计1的个数,例如想统计女生的格式就使用该指令,统计男生个数就用总人数减去该指令获得的数据
bitop:对key进行按位运算,且或非等运算
2、hyperloglog
意义:在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且是很小的只需要花费12KB内存,就可以计算接近2的64次方个不同的基数。ps:有人问set集合也可以统计不重复个数,但set集合他大呀哈哈哈哈。
注意事项:该类型只用于统计基数,不像set集合一样可以获取元素本身,该类型没有类似get元素的操作。并且统计基数时候还会存在0.81%左右的误差,所以要应用于一些可接受该范围误差的统计上,例如系统用户量、点赞收藏个数,千万别应用于一些金钱上面(你试试给我缺1毛钱!腿给你打断)
操作:
pfadd:添加数据
pfcount:统计基数数量
pfmerge:合并数据
3、geo
意义:类似百度、高德地图的坐标操作
操作:
geoadd:增加一个点
geopos:获取一个点
geodist:获取点与点之间的距离
georadius:根据坐标求范围内的值(例如开车的时候,你的坐标并非存在库里面的也不应该存在库里面 只是一个临时的点,这时候用该指令,与下面做对比)
georadiusmember:根据点求范围内的值(例如天安门这种景点是在库里面存在的一个数据,就用该指令)
通用指令
del:删除一个key
exits:是否存在对应的key
type:获取key的类型
expire:设置key的有效时间(秒)
pexpire:设置key的有效时间(毫秒)
ttl/pttl:获取key的有效时间(ps:返回-2证明key失效了或者根本不存在,-1永久有效,其他数值为有效时间)
rename:将key改名
renamex:将key改名,解决上面指令在改名时候把其他key覆盖了
未完待续…tobecontinue