redis基础
优势:
-
性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。使用的是内存读写。单线程
-
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
-
原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
数据结构
String字符串
List集合
set集合
zset集合
Hash散列
bitmap
GEO地理位置信息
Stream消息队列
string
基本指令
set key value 设置值
get key 返回值
setnx key value 当key不存在的时候设置key的值
MSET key value 同时设置一个或者多个key的值
MSETNX key value 同时设置一个或者多个key的值,当所有给定的key都不存在的时候
hash
HDEL key field1 [field2] 删除一个或者多个哈希表字段
HEXISIT ket filed 查看指定字段是否存在
HGET key filed 获取存储在哈希表中指定的字段
HGETALL key 获取所有字段和值
HKEYS key 获取所有键
List
Redis的list其实可以看做是一个队列,因为它可以向列表的左右两边增加或者取出
LPOP key 移除并获取左边第一个元素
RPOP key 移出并且获取最后一个元素
LPUSH key value1 [value2] 插入一个或者多个值到列表头部
RPUSH key value1 [value2] 插入一个或者多个值到列表尾部
BLPOP key1 [key2 ] timeout 移除并且获取列表第一个元素,如果列表没有元素会阻塞直到超时或者发 现可弹出的元素位置
与此相同的还是BRPOP等。
知晓:还有统计长度,拿出指定位置的元素,先弹出再加入到另一个队列中,移除元素
SET
具有很强的计算能力 支持交并补的操作
SADD key member1 [member2]向集合添加多个成员
SCARD key 获取集合的成员数
SMEMBERS key 返回集合中的所有成员
SISMEMBER key 判断 member 元素是否是集合 key 的成员
SRANDMEMBER key [count] 返回集合中一个或多个随机数
SREM key member1 [member2] 移除集合中一个或多个成员
zset
有一个分数的指定,其实就相当于是一个权重了。支持的是对于满足一定条件(分数)的成员的各种操作
比如基本的增减 交并
ZADD key score1 member1 [score2 member2]向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZCARD key 获取有序集合的成员数
ZCOUNT key min max 计算在有序集合中指定区间分数的成员数
ZINCRBY key increment member 有序集合中对指定成员的分数加上增量 increment
ZINTERSTORE destination numkeys key [key …]计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 destination 中