五大数据类型简介
String(字符串)
-
string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
-
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。
-
string类型是Redis最基本的数据类型,一个redisl中 字符串value最多可以是512M .
Hash(哈希)
-
Redis hash是一个键值对集合。
-
Redis hash是一个string类 型的field和value的映射表,hash特别适合用于存储对象。
类似Java里面的Map< String,Object>
List(列表)
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
它的底层实际是个链表
Set(集合)
Redis的Set是string类型的无序集合。它是通过HashTable实现实现的。
Zset(Sorted Set 有序集合)
Redis zset和set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的, 但分数(score)却可以重复。
常用API
Redis键(key)
-
keys *:显示当前库的所有key -
exists key的名字:判断某个key是否存在,1表示存在,0表示不存在 -
move key db:将指定key移动至制定db库中,1表示成功,0表示失败 -
expire key 秒钟:为给定的key设置过期时间,1表示成功,0表示失败 -
ttl key:查看key还有多少秒过期,-1表示永不过期,-2表示已过期 -
type key:查看key的数据类型

字符串(String)
-
set key value:当前库添加键值对,若key重复则覆盖 -
get key:获取当前库的键的值 -
del key:删除当前库的键值对,1表示成功,0表示失败 -
append key value:原Stirng值最后追加value字符串并返回string长度 -
strlen key:返回value的长度 -
incr key:自增1,并返回值,非数字报错 -
decr key:自减1,并返回值,非数字报错 -
incrby key n:自增n,并返回值,非数字报错 -
decrby key n:自减n,并返回值,非数字报错 -
getrange key n1 n2:获取制定区间范围的值,类似between...and,n2为-1表示到结束 -
setrange key n value:设置key从n开始以后的值为value,覆盖原来的value长度的value -
setex key time value:(set with expire),添加值同时设置过期时间,单位秒 -
setnx key value:(set if not exist),如果key不存在就设置,存在则不设置 -
mset k1 v1 k2 v2 .. kn vn:more set,同时设置多个键值对 -
mget k1 k2 k3:more set,同时获取多个键的值 -
msetnx k1 v1 k2 v2 .. kn vn:同时设置“个或多个键值对,当且仅当所有给定key都不存在。 -
getset key newValue:将给定key的值设为value,并返回key的旧值(old value)。 简单一句话,先get然后立即set


列表(List)
-
lpush key v1 v2 .. vn:左侧插入v1-vn -
rpush key v1 v2 .. vn:右侧插入v1-vn -
lrange key n1 n2:从key中获取从n1到n2的值 -
lpop key:左侧(栈顶)弹出一个元素 -
rpop key:右侧(栈底)弹出一个元素 -
lindex key index:按照下标获取元素,没有返回 (nil) -
llen key:获取列表长度 -
lrem key n value:在列表中删除n个值为value的值 -
ltrim key start end:截取列表中从start开始到end结束的值再赋给key -
rpoplpush list1 list2:list1的最后(右侧)一个元素移动到list2的第一个(左侧)元素 -
lset key index value:将列表下标为index的值设置为value值 -
linsert key before/after v1 v2:将v1的 之后/之前插入v2元素

集合(Set)
-
sadd key v1 v2 .. vn:添加元素到集合中,如果集合不存则创建集合 -
smembers key:输出集合中的全部元素 -
sismember key value:判断value是否在key集合中,返回0/1 -
scard key:获取集合里面元素的数量 -
srem key value:删除集合中的value元素 -
srandmember key n:从集合中随机取出n个元素 -
spop key:从集合中随机出栈一个元素 -
somve key1 key2 key1中的某个值:将key1里面的值移动到key2里面 -
sdiff key1 key2:求差集。在set1中而不在set02中的元素 -
sinter key1 key2:求交集。两个set中的共有元素 -
sunion key1 key2:求并集。两个set集合全部的元素

哈希(Hash)
-
hset key k1 v1:添加一个键值对到哈希中 -
hget key k1:从哈希键值对中获取 -
hmset key k1 v1 k2 v2 ...:同时添加多个键值对到哈希中 -
hgetall key:输出所有键值对 -
hdel key k:删除键为k 的键值对 -
hlen key:输出键值对的个数 -
hexists key k:判断所有键中是否包含k -
hkeys key:获取所有的键 -
hvals key:获取所有的值 -
hincrby key k n:将k的值自增n(整数) -
hincbryfloat key k n:将k的值自增n(小数) -
hsetnx key k v:如果不存在就设置,否则不设置

有序集合Zset(sorted set)
在set基础.上,加一个score值。 之前set是k1 v1 v2 v3, 现在zset是k1 score1 v1 score2 v2
-
zadd key k1 v1 ....:添加Zset,k1,v1键值对,key递增有序 -
zrange key start end:输出start到end范围内的value -
zrange key start end:输出start到end范围内的key和value -
zrangebyscore key 开始score 结束score:输出范围内的value,-
如果参数前加(表示不包含
-
命令 withscores:包含key -
命令 limit start step:类似分页查询
-
-
zrem key k:删除键为k的键值对 -
zcard key:返回键值对的个数 -
zcount key start end:统计开始到结束之间的键值对个数 -
zrank key k:输出k所在的下标值 -
zsocre key k:输出k对应的value -
zrevrank key k:从逆序中获取下标值 -
zrevrangbysocre key start end:从逆序中获取范围值

Redis 提供了五大数据类型:String、Hash、List、Set 和 Zset。String是最基本的类型,支持字符串操作;Hash是键值对集合,适合存储对象;List是有序的字符串列表,支持在两端添加元素;Set是无序的字符串集合,不允许重复;Zset是有序集合,根据分数排序。Redis 还提供了丰富的API,包括键(key)、字符串(String)、列表(List)、集合(Set)、哈希(Hash)和有序集合(Zset)的操作,如添加、删除、查询和更新等。
6万+

被折叠的 条评论
为什么被折叠?



