Redis所支持的数据结构

时间:2023-03-09 08:40:57
Redis所支持的数据结构

1、启动Redis
2、Redis所支持的数据结构
  2.1、Redis常用操作
  2.2、String类型及操作
  2.3、Hash类型及操作
  2.4、List类型及操作
  2.5、Set类型及操作
  2.6、Zset类型及操作

1、启动Redis

首先进入到解压后的Redis目录

Redis所支持的数据结构

然后开启Redis服务器的daemon启动程序,命令:redis-server

Redis所支持的数据结构

最后开启Redis命令行操作工具,命令:redis-cli   (若需要支持输入中文则命令:redis-cli --raw)

Redis所支持的数据结构

2、Redis所支持的数据结构

Redis允许的value数据结构类型有5种:String(字符串)、List(列表)、Set(集合)、Hash(哈希)、Zset(有序集合)。

再讲5中数据结构的操作命令前先归纳一下:

  • 增加操作:String(set、mset),List(lpush 、rpush),Set(sadd),Hash(hset、hmset),Zset(zadd)
  • 删除操作:String(del),List(lpop、rpop),Set(srem,spop),Hash(Hdel),Zset(zrem)
  • 查询操作:String(get),List(lrange),Set(smembers),Hash(hkeys,hvals,hgetall),Zset(zrange)
  • 返回长度操作:List(llen),Set(scard),Hash(hlen),Zset(zcard)

2.1、Redis常用操作

select number(选择数据库命令)

Redis所支持的数据结构

keys *(查看当前redis库中所有键)

Redis所支持的数据结构

keys xx*(查看xx开头的所有键)

Redis所支持的数据结构

exists key(查看键是否存在)

Redis所支持的数据结构

del key(删除此key及其对应的value)

Redis所支持的数据结构

expire key time(为key设置一个过期时间time(s),当到了过期时间时,自动删除键值)

Redis所支持的数据结构

persist key(移除key的过期时间)

Redis所支持的数据结构

ttl key(查询key的剩余过期时间,若没有设置过期时间为-1)

Redis所支持的数据结构

move key number(将一个键移到其他number库中)

Redis所支持的数据结构

dbsize(返回当前库有多少key)

Redis所支持的数据结构

flushdb (删除当前库所有key)

Redis所支持的数据结构

rename key1 key2(将key1重命名key2)

Redis所支持的数据结构

type key (返回key的类型)

Redis所支持的数据结构

2.2、String类型及操作

  • String类型是最简单的类型,可以保存二进制字节序列。从内部看是一个byte数组,最大上限是1G字节。
  • 用来存储三种类型的值:1.二进制序列字符串。 2.整型数据。 3.浮点数据。

操作命令:

set key value(添加或者更改key对应的value)

get key(读取key对应的value)

del key(删除此key及其对应的value)

Redis所支持的数据结构

setnx key value(若没有此键则添加数据,有则返回0。setnx的意思是set not exists,若不存在则添加)

Redis所支持的数据结构

setex key existstime value(设置键值对并指定有效期)

Redis所支持的数据结构

setrange key index value (从以前value的第index开始替换为新设定的值)

Redis所支持的数据结构

mset key1 value1 key2 value2...(一次性设置多个键值)

Redis所支持的数据结构

msetnx key1 value1 key2 value2...(若其中任意一个键存在都添加失败)

Redis所支持的数据结构

getset key value(返回旧值并设置一个新值)

Redis所支持的数据结构

getrange key offset1 offset2(取键对应值的子字符串)

Redis所支持的数据结构

mget key1 key2 key3....(获取多个值,若无值返回nil)

Redis所支持的数据结构

incr key(为键对应的值进行加1操作,key不存在时设置为0)

Redis所支持的数据结构

incrby key number(和incr类似,若无key则创建一个key)

Redis所支持的数据结构

append key value(给指定字符串在末尾添加新值)

Redis所支持的数据结构

strlen key (取出指定key的value长度)

Redis所支持的数据结构

2.3、Hash类型及操作

操作命令:

hkeys hash(看hash中所有键)

Redis所支持的数据结构

hvals hash(查看hash中所有值)

Redis所支持的数据结构

hgetall hash(找hash中所有键和值)

Redis所支持的数据结构

hset hash field value(在hash中添加一个字段)

Redis所支持的数据结构

hsetnx hash field value(设置一个字段,若存在此字段返回0)

Redis所支持的数据结构

hmset hash field1 value1 field2 value2....(同时设置多个多个字段)

Redis所支持的数据结构

hget hash field(获取hash中指定字段)

Redis所支持的数据结构

hmget hash field1 field2...(取hash中多个字段值)

Redis所支持的数据结构

hincrby hash field number(给字段加上指定值)

Redis所支持的数据结构

hexists hash field (测试字段是否存在)

Redis所支持的数据结构

hlen hash(返回hash的field数量)

Redis所支持的数据结构

hdel hash field(删除hash某个字段)

Redis所支持的数据结构

2.4、List类型及操作

  • list在Redis存储为有序的字符串序列,其实就是每个子元素都是string类型的双向链表。最大长度为2^32。

操作命令:

lpush list value (从list头部插入值)

Redis所支持的数据结构

rpush list value(从list尾部插入值)

Redis所支持的数据结构

lrange list 0 -1 (查询list中所有值)

Redis所支持的数据结构

linsert list before(after) oldvalue newvalue  (在list中的指定的值之前或者之后插入一个值)

Redis所支持的数据结构

lset list offset value (设定list中指定下标的元素值)

Redis所支持的数据结构

lrem list number value(从list头部顺序删除number个和value相同的值)

Redis所支持的数据结构

ltrim list offset1 offset2 (保留在offset1 offset2中的所有数据,其他删除)

Redis所支持的数据结构

lpop list (删除list头部,并返回删除元素)

Redis所支持的数据结构

rpop list (删除list尾部,并返回删除元素)

Redis所支持的数据结构

rpoplpush(删除第一个list的尾部,并添加到第二个list的头部,返回此元素)

Redis所支持的数据结构

lindex list index (返回list中index下标的元素)

Redis所支持的数据结构

llen list (返回list对应长度)

Redis所支持的数据结构

2.5、Set类型及操作

  • 是一个字符串序列,set 内部使用hash表保持唯一性。用来做交集、并集、补集方便。

操作命令:

sadd set member(向set中添加元素,重复添加返回0)

Redis所支持的数据结构

smembers set(查询set中所有元素)

Redis所支持的数据结构

srem set member(在set中删除member,没有则返回0)

Redis所支持的数据结构

spop set (随机返回并删除set中的一个元素)

Redis所支持的数据结构

srandmember set(随机返回一个set中的元素,但不删除)

Redis所支持的数据结构

sdiff set1 set2 (返回set1对set2的补集)

Redis所支持的数据结构

sdiffstore set1 set2 set3(返回set2对set3的补集给set1)

Redis所支持的数据结构

sinter set1 set2(返回set1和set2的交集)

Redis所支持的数据结构

sunion set1 set2(返回set1和set2的并集)

Redis所支持的数据结构

sunionstore set1 set2 set3(set2和set3的并集结果存放在set1中)

Redis所支持的数据结构

smove set1 set2 member(从set1中移动member进入set2)

Redis所支持的数据结构

scard set(返回set元素个数)

Redis所支持的数据结构

sismember set member(判断set中是否有member有返回1,无返回0)

Redis所支持的数据结构

2.6、Zset类型及操作

  • 在set基础上加了一个顺序属性。Zset中每个成员都有一个score关联,通过score来为集合中的成员从大到小排序。
  • 经常作为索引使用。

操作命令:

zadd zset score member(向zset中添加成员,若member存在则根据score更新该元素顺序)

Redis所支持的数据结构

zrange zset 0 -1(查询所有成员)

Redis所支持的数据结构

zrange zset 0 -1 withscores(查询zset中所有分数和成员,按分数从小到大)

Redis所支持的数据结构

zrevrange zset 0 -1 withscores(查询zset中所有分数和成员,按分数从大到小)

Redis所支持的数据结构

 zrem zset member(删除元素member)

Redis所支持的数据结构

zincrby zset score member(对member 的分数增加score)

Redis所支持的数据结构

zrank zset member (返回member在zset中的从小到大排名)

Redis所支持的数据结构

zrevrank zset member(返回member在zset中的从大到小排名)

Redis所支持的数据结构

zcount zset score1 score2(计算了分数在score1和score2间元素的个数)

Redis所支持的数据结构

zcard zset (返回集合中元素的个数)

Redis所支持的数据结构

zscore zset member(返回元素对应的score)

Redis所支持的数据结构

zremrangebyrank zset offset1 offset2(删除索引offset1到offset2之间的元素)

Redis所支持的数据结构

zremrangebyscore zset score1 score2(删除分数范围之间的元素)

Redis所支持的数据结构