Redis五大数据类型

Redis常用操作指令:
1.DEl 删除给定的一个或者多个KEY:
a.删除单个字符串类型的 key ,时间复杂度为O(1)。

b.删除单个列表、集合、有序集合或哈希表类型的 key ,

   时间复杂度为O(M), M 为以上数据结构内的元素数量。

2.dbsize查看当前数据库的key的数量。
3.flushdb:清空当前库所有的数据。
4.Flushall通杀全部库:
a.默认16个数据库,类似数组下表从零开始,初始默认使用零号库.
b.select命令切换数据库。
c.Redis索引都是从零开始。
常用的Key(键)指令:
1.keys *查询当前库的所有KEY。
2.exists 后面加上KEY名字:判断某个kEY是否存在。
3.move key db(库名) 把KEY在当前库移除,并且在db库新增一个相同的KEY。
4.expire key 秒钟:为给定的key设置过期时间,过期就是直接删除。
5.ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期.

6.type key 查看你的key是什么类型。


String(字符串)
string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。
string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M

常用的String(字符串)指令:
1.set key 值,添加如果 key 已经持有其他值, SET 就覆写旧值,无视类型。
2.get key,当 key 不存在时,返回 nil ,否则,返回 key 的值。
3.del key,删除。
4.strken key,返回 key 所储存的字符串值的长度。
5.Incr/decr/incrby/decrby,一定要是数字才能进行加减。
6.getrange/setrange:
a.getrange:获取指定区间范围内的值,类似between......and的关系
   从零到负一表示全部。
b.setrange设置指定区间范围内的值,格式是setrange key值具体值。
7.mset,同时设置一个或多个 key-value对。
8.mget:获取所有(一个或多个)给定 key的值。

9.msetnx:同时设置一个或多个 key-value 对,当且仅当所有给定key都不存在。


List(列表)

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部

(左边)或者尾部(右边)。它的底层实际是个链表


常用的List(列表)指令:
1.lpush,将一个或多个值 value 插入到列表 key 的表头:
a.如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头: 
   比如说,对空列表 mylist 执行命令 LPUSH mylist a b c ,列表的值将是 c b a。
2.rpush,将一个或多个值 value 插入到列表 key 的表头:
a.如果有多个 value 值,那么各个 value 值按从右到左的顺序依次插入到表头: 
   比如说,对空列表 mylist 执行命令 LPUSH mylist a b c ,列表的值将是 a b c。
3.lrange,查看列表,通过下标的方式:lrange list(key) 0 -1查看所有元素。
4.lpop,移除并返回列表 key 的头元素(说简单点就是删除列表的第一个元素,并返回到显示上)。
5.rpop,移除并返回列表 key 的底元素(说简单点就是删除列表的最后一个元素,并返回到显示上)。
6.lindex,按照索引下标获得元素(从上到下):lindex key index(下标)。
7.llen,返回列表 key 的长度。
8.lrem,移除列表中与参数 value 相等的元素:LREM key count value。
9.ltrim key 开始index 结束index删除指定范围。
10.rpoplpush 源列表 目的列表,移除列表的最后一个元素,并将该元素添加到另一个列表并返回显示。
11.lset key index value,列表 key 下标为 index 的元素的值设置为 value(就是修改指定下标元素的value值)。
11.linsert key  before(前面)/after(后面) 值1 值2,在list某个已有值的前后再添加具体值:
a.比如LINSERT mylist before 6 b:在mylist列表里的6这个value值前面增加一个b。
12.它是一个字符串链表,left(左)、right(右)都可以插入添加;
a.如果键不存在,创建新的链表;
b.如果键已存在,新增内容;
c.如果值全移除,对应的键也就消失了。

d.链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。


Set(集合)
Redis的Set是string类型的无序集合。它是通过HashTable实现实现的,

常用的Set(集合)操作指令:
1.sadd,将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。
2.smembers key,返回集合 key 中的所有成员.
3.sismember key 值,判断集合中是否包含某个值有就返回1,没有返回0。
4.scard key,获取集合里面的元素个数。
5.srem key value,删除集合中的元素。
6.srandmember key,返回集合中的随机一个元素。
7.spop key,随机出栈(即随机删除一个元素,并返回显示)。
8.smove set1 set2 在set1里某个值:作用是将key1里的某个值赋给set2。
9.数学集合类:
a.sdiff差集,sdiff key...(就是返回多个set集合里的没有相同的元素)。
b.sinter交集,sinter key..(返回多个set集合里相同的元素)。

c.sunion并集,sunion key..(返回多个set集合里的所有元素)。

扫描二维码关注公众号,回复: 1169864 查看本文章



Hash(哈希)
Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Redis里面的hash就有点像Java里的new hashMap(<string,object>)这也一个形式。

常用的Hash(哈希KV模式不变,但V是一个键值对)指令:
1.hset,添加一个hash:hset ahash k1 v1。
2.hget,根据hash里的key查询value:hget ahash k1。
3.hdel,删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略:HDEL ahash k1。
4.hmset,同时将多个 field-value (域-值)对设置到哈希表 key 中。
a.hmset ahash k1 v1 k2 v2 k3 v3。
5.hmset,同时查看单个哈希表key中的value。
a.hmget ahash k1 k2 k3.
6.hgetall,查询哈希表里的所有元素以key-value的形式。
7.hlen,返回哈希表 key 中域的数量。
8.hexists key,判断在哈希表中的key是否有。
9.hkeys,返回哈希表 key 中的所有域。
10.hvals,返回哈希表 valus 中的所有域。
11.hincrbyfloat,为哈希表 key中的域field加上浮点数增量 increment。
12.hincrby,为哈希表 key 中的域field的值加上增量increment。

13.hsetnx,将哈希表 key 中的域 field 的值设置为 value,当且仅当域field不存在。


zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

常用Zset有序集合(sorted set)指令:
在set基础上,加一个score值。之前set是k1 v1 v2 v3,
现在zset是k1 score1 v1 score2 v2。
1.zadd,添加:ZADD myzset 1 v1 2 v2。
2.zrange key start stop [WITHSCORES],查看返回有序集 key 中,指定区间内的成员。
a.zrange myzset 0- 1WITHSCORES。

3.zrangebyscore key 开始score 结束score,返回有序集 key 中,

  所有 score值介于min和max 之间(包括等于min或max)的成员。

  有序集成员按 score 值递增(从小到大)次序排列。  
4.zrem key 某score下对应的value值,作用是删除元素。
5.zcard/zcount key score区间/zrank key values值,作用是获得下标值/zscore key 对应值,获得分数
6.zrevrank key values值,作用是逆序获得下标值。
7. zrevrangebyscore  key 结束score 开始score。

猜你喜欢

转载自blog.csdn.net/lifupingcn/article/details/68489684