Redis的五大数据类型
1.String
- string是redis最基本的数据类型
- string类型是二进制安全的 ,因此它可以包含任何数据,比如jpg图片或者序列化的对象
- 相关命令
- set / get / del(删除) / append(追加) / strlen(字符串长度)
- incr(加一) / decr(减一) / incrby(增加几) / decrby(减少几) 只整对数字类型
- getrange(获取某个范围内字符串substring) / setrange(设置从某个下标开始,替换(覆盖))
- setex(set with expire设置key和value的同时设定过期时间) / setnx(set if not exist如果不存在才能设置)
- mset(一次设置多个键值对) / mget(一次取多个值) / msetnx (设置多个加判断是否存在)原子性,都成功/都失败
2.Hash(类似Java中的Map)
- hash是一个键值对集合, 特别适合用来存储对象
- 类似Hashmap
- 相关命令
- hset / hget / hmset / hmget / hgetall / hdel
- hlen key(key中有几个属性)
- hexist key(判断key中存在某个属性)
- hkeys / hvals(取出所有的key/取出所有的value)
- hincrby / hincrbyfloat(增加值/增加浮点数)
- hsetnx(如果属性不存在就加进去,存在失败)
3.List (列表)
- 简单的字符串列表,按照插入的顺序排序
- 它的底层实际上是链表
- 相关命令
- lpush(从左边进队) / rpush(从右边进队)/ lrange(遍历队列) 可以理解为双端队列
- lpop(左端出队列) / rpop(右端出队列)
- lindex(取list索引下标对应的值)
- llne(list的长度/size)
- lrem key value(删除n个value)
- ltrim key(去除两端的值,只剩下指定的值)
- rpoplpush(两个队列,右边出去,进到左边)
- lset key index value(将下标为index的设置为某个值)
- linsert key before/after [参考值] [插入值]
4.Set (集合)
- set是string类型的无序集合,且不允许元素重复
- 它是通过HashTable来实现的
- 相关命令
- sadd(向set集合中添加元素) / smembers (查看set中元素成员)/ sismember (判断是不是set中的元素)
- scard(查看集合中有几个元素)
- srem key value(删除set中的元素)
- srandmember key [count](随机取出set中的几个元素)可用于抽奖
- spop key [count](随机count个元素弹出)
- smove [source] [destination] [member](将前面set中的成员移到后面的set中)
- sdiff(差集)
- sinter(交集)
- sunion(并集)
5.Zset (sorted set有序集合)
- zset和set一样也是string类型元素的集合,且不允许有重复值
- 不同的是每个元素都会关联一个double类型的分数
- redis正是通过分数来为集合中的成员进行从大到小的排序
- zset的成员是唯一的,但分数可以相同(重复)
- 相关命令
- zadd / zrange [withscores](显示所有)
- zrangebyscore [withscores] “(“表示不包含 [limit](取出指定score范围的元素)
- zrem key(删除某个元素)
- zcard(一共有多少个元素)/ zcount(统计在分数段中的有多少个)/zrank(拿取某个值的下标)/zscore(拿取值的分数)
- zrevrank(逆序获得某个值的下标)
- zrevrange(逆序输出值)
- zrevrangebyscore(通过分数逆序) [withscores] “(“表示不包含 [limit]
还没有评论,来说两句吧...