什么是redis
- redis 键值支持的数据类型有:字符串类型、散列类型(哈希)、列表类型、集合类型、有序集合类型
- redis 的主要用于实现缓存、队列、消息订阅等功能
- redis 支持主从复制功能,实现高可用
- redis 可以对内存中的数据进行持久化
redis工具介绍
- redis-server:redis 服务端,用于启动 redis 服务
- redis-cli:redis 命令行客户端,可以直接连接到 redis 服务,提供了丰富的键值操作的命令
- redis-benchmark: redis 提供的性能测试工具
- redis-check-aof:aof 文件修复工具
- redis-check-dump:adb 文件检查工具
- redis-sentinel:哨兵服务器,可以启动哨兵用于监控 redis 服务的运行情况
键值 (字符串类型的键允许存放的最大数据类型为 512 M
- SET key value # 设置键值
- GET key # 获取键值
- INCR numKey # 让键值递增,返回递增后的数值,键值非数字会报错,不存在时默认为 0
- DECR numKey # 自减
- STRLEN key # 返回键值的字符串长度
- MSET/MGET # 和 GET/SET 类似,批量设置和获取
哈希 (也叫散列一种字典类型,存储了字段和字段值的映射关系)
- HSET key field value # 设置散列类型 key 对应的对象的某个属性
- HGET key field # 获取散列类型 key 对应的对象的某个属性
- HMSET key field value ... # 批量设置散列类型 key 对应的多个属性的值
- HMGET key field ... # 批量获取散列类型 key 对应的多个属性的值
- HGETALL key # 获取散列类型中某个 key 对应的所有属性及值,也就是整个对象
- HEXISTS key field # 判断散列类型中某个字段是否存在
- HSETNX key field value # 判断散列类型中某个字段是否存在,不存在则赋值
- HDEL key field ... # 删除散列类型中对象里的一个或者多个字段
- HKEYS key # 获取散列类型中对象里的所有字段属性名
- HVALS key # 获取散列类型中对象里的所有字段属性对应的值
- HLEN # 获取散列类型中对象里的字段数量
列表
- LPUSH key value1 value2... # 向列表左边增加多个元素
- RPUSH key value1 value2... # 向列表右边增加多个元素
- LPOP key # 从列表左边弹出一个元素
- RPOP key # 从列表右边弹出一个元素
- LLEN key # 获取列表中元素个数,时间复杂度为O(1)
- LRANGE key start stop # 获取列表中从 start 到 stop 之间的元素,从 0 开始索引
- LTRIM key start end # 删除列表中指定范围以外的所有元素
集合(列表类型可以存储一个有序的字符串列表,常用的操作是向列表两头添加元素或者列表某个片段,列表类型使用双向链表实现,访问首尾元素的速度非常快)
- SADD key value1 value2... # 向集合中加入多个元素
- SREM key value1 value2... # 从集合中删除多个元素
- SMEMBERS key # 获取集合中的所有元素
- SISMEMBER key value # 判断元素是否存在集合中
- SDIFF key1 key2... # 对多个集合求差集运算
- SINTER key1 key2... # 对多个集合求交集运算
- SDIFFSTORE destination key1 key2... # 对多个集合求差集运算,并将结果存储在 destination 集合中
- SUNION key1 key2... # 对多个集合求并集运算
- SCARD key # 获取集合中的元素个数
- SRANDMEMBER key count # 随机从集合中获取 count 个不相同的元素
- SPOP key # 随机从集合中弹出一个元素
有序集合(集合类型的元素是无序的、唯一的,常用的操作是向集合中加入某个元素或者删除某个元素、判断某个元素是否存在,大部分操作的时间复杂度基本都为 O(1))
- ZADD key score member ... # 向有序集合中添加元素,如果存在则更新元素对应的 score
- ZSCORE key member # 获取有序集合中某个元素的分数
- ZRANGE key start stop # 获取有序集合中排名在某个范围的元素,结果集从小到大排序
- ZREVRANGE key start stop # 获取有序集合中排名在某个范围的元素,结果集从大到小排序
- ZINCBY key increment member # 增加有序集合中某个元素的分数
- ZCARD key # 获取有序集合中元素的数量
- ZCOUNT key min max # 指定分数范围内元素的个数
- ZREM key member... # 删除有序集合中一个或者多个元素
- ZRANK key member # 获取某个元素的排名
- ZREMRANGEBYRANK key start stop # 删除有序集合中某个排名范围的元素
- ZREMRANGEBYSCORE key min max # 删除有序集合中某个score范围的元素
过期时间
- EXPIRE key seconds 用于设置键的过期时间,单位为秒
- PEXPIRE key milliSeconds 单位为毫秒
- TTL key 用于获取键的过期时间,返回 -1 表示过期时间为永久,-2 表示键值不存在
- PTTL key 获取过期时间,单位为毫秒
- PERSIST key 用于清空过期时间,设为永久
- SET 命令同样会清空过期时间
通用的命令
- CONFIG set loglevel warning # 动态修改 redis 的部分配置
- CONFIG get loglevel # 获取 redis 的部分配置
- SELECT 1 # 更改数据库编号,默认从 0 开始
- EXISTS key # 判断某个键值是否存在,存在返回 1, 否则返回 0
- DEL key1 key2 # 可以删除一个或者多个键,返回删除的个数
- KEYS "user*" | xargs | del # 实现通配符匹配删除多个键值
- TYPE key # 获取键值的数据类型,string | hash | list | set | zset(有序集合)
HyperLogLog
- 来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。
- 在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。
- PFADD test"redis" #添加指定元素到 HyperLogLog 中
- PFCOUNT test #命令返回给定 HyperLogLog 的基数估算值
GEO
- 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 版本新增
- GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania" #添加地理位置的坐标
- GEODIST Sicily Palermo Catania #计算两个位置之间的距离
- geopos # 获取地理位置的坐标
posted @
2021-02-22 14:50
惊风破浪的博客
阅读(
141)
评论()
编辑
收藏
举报