String类型简介:
String类型是redis最基本的类型,一个key对应一个value,value最大为512M。String类型底层结构叫做简单动态字符串,是可以修改的字符串,类似以Java中的ArrayList。当村粗的value小于1M时,会成倍扩容现有的空间;超过1M时,则每次只会增加1M的空间。最大不超过512M。
String常用命令:
set < key > < value > 添加键值对
setnx < key> < value > 当key在数据库中不存在时,则会添加
setxx < key > < value > 当key在数据库中存在时,则会添加
setex < key > < seconds > < value > 设置key的过期时间,单位为秒
ttl < key > 查看当前key过期剩余时间
get < key > 获取数据库对应key的value
append < key > < value > 将给定的value追加到key的末尾
incr< key > 将key中的数字+1(这里key对应的value必须是数字)
decr< key > 将key中的数字-1(这里key对应的value必须是数字)
incre/decre < key > <长度> 将key对应的value加减 "长度"
mset < key > < value > < key > < value > ... 一次设置多个键值
mget < key > < key > ... 一次获取多个键的值
getrange < key > < start > < end > 获取值得范围,类似于java中的subString(),前包后包
getset < key > < value > 以旧换新
redis列表:
列表是单键多值,按照插入顺序排序的简单字符串列表。它的底层是一个双向链表,对两端的操作性能很高,对中间操作的性能偏低。
list常用命令:
rpush/lpush < key > < value > < value> ... 从右/左边添加插入一个元素
rpop/lpop < key > 从右/左吐出一个元素(值在键在,值光键亡)
lange < key > < start > < end > 根据索引返回列表元素(0,-1表示返回全部元素)
rpoplpush < key1 > < key2 > 将key1右边突出的值追加在key2的右边
lindex < key > < index > 根据索引下表获取元素(从左到右)
llen < key1 > 获取列表长度
linsert < key > before < value > < newvalue > 在value的后面插入newvalue
lrem < key > < n > < value > 从左边删除n个value(从左到右)
lset < key > < index > < value > 将key中下标为index的值替换为value
redisSet列表:
Set数据机构是dict字典,使用hash表实现,类似于java中的hashSet。
set常用命令:
sadd < key > < value > < value> ... 添加元素,重复的元素会被忽略
smembers < key > 查看key的所有元素
spop < key > 随机从key吐出一个元素
srandmember < key > < n > 随即从集合中取出n个值,不会删除
smove < key1 > < key2 > < value > 把集合一个元素一动到另一个集合
sinter < key1 > < key2 > 取两个集合的交集元素
sunion < key1 > < key2 > 取两个集合的并集
sdiff < key1 > < key2 > 取两个集合的差集元素
redisHash:
redisHash是一个键值对集合,这个键值对中的值是:一个filed,对应一个value的映射表,适合存储对象,类似于java中的Map
hash常用命令:
hset
hget
hexists
hkeys
hvals
hincrby
有序集合Zset:
zset与set相似,不同之处在于有序集合每个成员都会关联一个评分,所有成员按照这个评分从低到高排序,集合中成员是唯一的,评分是可以重复的。
Zset常用命令:
zadd
zrange
zrangebyscore
zrangebyscore
zincrby
zrem
zcount
zrank
BitMaps:(redis6新增数据类型)
Bitmaps本身不是一种数据类型, 实际上它就是字符串(key-value) , 但是它可以对字符串的位进行操作。可以把Bitmaps想象成一个以位为单位的数组, 数组的每个单元只能存储0和1, 数组的下标在Bitmaps中叫做偏移量。
常用命令:
setbit
bitcount
bitop operation (and/or/not/xor) <保存的map> [key1 key2…]
HyperLogLog:
Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且是很小的。
基数:比如数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集为 {1, 3, 5 ,7, 8}, 基数(不重复元素)为5。 基数估计就是在误差可接受的范围内,快速计算基数。
常用命令:
pfadd
pfmerge
Geospatial:
GEO,Geographic,地理信息的缩写。该类型,就是元素的2维坐标,在地图上就是经纬度。redis基于该类型,提供了经纬度设置,查询,范围查询,距离查询,经纬度Hash等常见操作。
常用命令:
geoadd
geopos
geodist
georadius
redis发布订阅是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息,redis可以订阅任意数量的频道。
subscribe channel1 订阅频道一
publish channel1 hellohello 向channel1发送消息hellohello



