一、centos8安装redis6.0
redis官网选择稳定版本下载 https://redis.io/download
安装教程: https://www.cnblogs.com/architectforest/p/12830056.html
安装过程问题解决:https://blog.youkuaiyun.com/lgh1117/article/details/48270085
windows10安装redis6.0
https://download.youkuaiyun.com/download/pm136479pm/12391521
二、redis可以存储的数据类型
2.1 字符串(String)
2.2 哈希(hash)
2.3 列表(List)
2.4 集合(set)
元素唯一
2.5 有序集合(sorted set)
按照分数排序且元素唯一
2.6 不常用的数据类型bitmap、geo、hyperloglog
2.6.1 bitmap
BitMap 就是通过一个 bit 位来表示某个元素对应的值或者状态, 其中的 key 就是对应元素本身,实际上底层也是通过对字符串的操作来实现。Redis 从 2.2 版本之后新增了setbit, getbit, bitcount 等几个 bitmap 相关命令。虽然是新命令,但是本身都是对字符串的操作,我们先来看看语法:
setbit key offset value
在redis中,字符串都是以二进制的形式存在的。比如: 设置一个key("str")-value("a"), 字符串"a"的ASCII码是97,二进制表示为: 01100001, offset表示偏移量,从左往右开始计算,通过setbit命令将字符串"a" 变为 "b",其实就是将01100001 变为01100010(b的ASCII码是98,即将’a’中的offset 6从0变成1,将offset 7从1变成0。
2.6.2 geo
Redis 的 GEO 特性在 Redis 3.2 版本中推出, 这个功能可以将用户给定的地理位置信息储存起来, 并对这些信息进行操作
GEOADD key longitude latitude member [longitude latitude member ...]
将给定的空间元素(纬度、经度、名字)添加到指定的键里面。 这些数据会以有序集合的形式被储存在键里面, 从而使得像 GEORADIUS 和 GEORADIUSBYMEMBER 这样的命令可以在之后通过位置查询取得这些元素
2.6.3 hyperloglog
Redis 的基数统计,这个结构可以非常省内存的去统计各种计数,比如注册 IP 数、每日访问 IP 数、页面实时UV)、在线用户数等。但是它也有局限性,就是只能统计数量,而没办法去知道具体的内容是什么。
当然用集合也可以解决这个问题。但是一个大型的网站,每天 IP 比如有 100 万,粗算一个 IP 消耗 15 字节,那么 100 万个 IP 就是 15M。而 HyperLogLog 在 Redis 中每个键占用的内容都是 12K,理论存储近似接近 2^64 个值,不管存储的内容是什么,它一个基于基数估算的算法,只能比较准确的估算出基数,可以使用少量固定的内存去存储并识别集合中的唯一元素。而且这个估算的基数并不一定准确,是一个带有 0.81% 标准错误的近似值。