redis五大数据类型及常用命令

  2017/11/01 |  未分类 |songjian|  1 条评论 |  1818 views


1.keys键操作(非五大类型)

  • exists key              测试指定key是否存在
  • keys *                                                    查询所有的key
  • expire key seconds                                为key指定过期时间
  • ttl key                                                        返回key的过期剩余秒数
  • del key1 key2….keyN        删除指定key
  • type key              返回指定key的value类型
  • keys pattern            返回指定模式的所有key
  • rename oldkey newkey       改名字
  • dbsize               返回当前数据路的key数量
  • select db-index           选择数据库
  • move key db-index         把key从当前数据库移动到指定数据库
  • flushdb              删除当前数据库所有key
  • flushall              删除所有数据库中的所有key

2.String类型操作

string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
sring类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M
  • set key value            设置key对应值为string类型的value
  • get  key                                                  获得指定key的value
  • del key                                                    删除指定的key
  • append key value                                 给指定key的字符串追加value
  • strlen key                                                获取指定key的长度
  • setex key seconds value      设置key对应值为string类型的value,增加到期时间
  • mset key1 value1…keyN valueN   一次设置多个key的值
  • mget key1 …keyN          一次获取多个key的值
  • incr key              对key的值++操作,并返回新值
  • decr key              同上,但是做的是–操作
  • incrby key integer          同incr,加指定值
  • decrby key integer         同desr,减指定值
  • incrbyfloat key increment      对key的值增加一个浮点数
  • substr key start end        返回截取过的key的字符串值 
  • getrange key start end       获取存储在key上的值的一个子字符串
  • setrange key offset value      将从start偏移量开始的子串设置指定的值

3.list链表操作(有序,可重复)

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
它的底层实际是个链表
  • lpush key string           在key对应list的头部添加字符串元素  
  • rpush key string                        在key对应list的尾部添加字符串元素      
  • rpop key               在list的尾部删除元素,并返回删除元素       
  • lpop key                                                   在list的头部删除元素,并返回删除元素 
  • llen key                 返回对应list的长度
  • lrange key start end           返回指定区间内的元素,从下表0开始
  • ltrim key start end            截取list, 保留指定区间内元素
  • lindex key 下标             获取列表下标对应的指定元素
  • blpop key[key…] time out        删除,并获得该列的第一元素, 或阻塞,直到有一个可用
  • brpop key[key…] time out        删除, 并获得该列的最后一个元素, 或阻塞,直到有一个可用
  • rpoplpush source destination       删除列表中的最后一个元素,将其追加到另一个列表
  • brpoplpush source destination timeout  弹出一个列表的值,将他推到另一个列表,并返回他,直到有一个可用 

    可以模拟 队列(先进后出) 和 栈(先进先出)

4.hash散列操作

Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。

  • hset  key  mapkey mapvalue           set一个hash散列
  • hget key mapkey                                    获取hash中mapkey 的值
  • hmset key field[field…]      设置hash字段值
  • hmget key field[field…]      获取hash里面指定字段的值
  • hdel key field[field…]        删除一个或多个hash的field
  • hexists key field          判断field是否存在hash中
  • hgetall key            从hash中读取全部的域和值
  • hlen key             获取hash中所有字段的数量
  • hkeys key             获取hash 中所有field
  • hvals key             获取hash的所有值
  • hincrby key field increment    将hash中指定域的值增加给定的值
  • hincrbyfloat key field increment  将hash中指定域的值增加给定的浮点数
  • hsetnx key field value       设置hash的一个字段,不存在赋值,存在无效
  • hstrlen key field          获取hash里面指定field的长度
  • hscan key cursor         迭代hash里面的元素

5.set集合操作(无序,唯一)

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

  • sadd key member             添加一个string元素到key对应的set集合中
  • smembers key              返回key对应set的所有元素,结果是无序的
  • sismember key member              判断member是否在set中
  • scard key                 返回set的元素个数
  • srem key member                 从key对应set中移除给定元素
  • srandmember key [count]              从集合中随机获取一个key
  • spop key[count]                   删除并取得一个集合里面的元素
  • smove p1 p2 member               从p1对应set中移除给定元素并添加到p2对应set中
  • sinter key p1 p2…pN              返回所有给定key的交集
  • sunion key p1 p2…pN               返回所有给定key的并集
  • sdiff key p1 p2…pN                返回所有给定key 的差集
  • sinterstore destination key [key….]            获取两个集合的交集,并存储在一个关键的结果集
  • sunionstore destination key [key…]          合并set集合,并将结果存入新的set里面
  • sdifferstore destination key[key…]          获取队列的差集,并存储在一个新的结果集
  • smove source destination member             移动集合里的一个key到另一个集合

6.sorted set有序集合操作(有序, 唯一)

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

          注: 在set基础上,加一个score值,之前set是k1 v1 v2 v3,现在zset是k1 score1 v1 score2 v2

有时候还可以这样用,在zset里设置所有元素的score为0,就按元素首字母排序(自动补全) 

  • zadd key score member      添加元素到集合,元素在集集合中存在则更新应对的score 
  • zrange key start end       从集合中选择指定区间的元素,返回的是有序集合
  • 从集合中选择指定区间的元素,返回的是有序集合
  • zrem key member          删除指定元素 
  • zcount key min max         返回分数范围内的成员变量 
  • zcard key             返回集合中元素的个数 
  • zrank key member         返回指定元素在集合中的排名(下标),集合中元素是按score                   从小到大排序的 
  • zrevrank key member          集合中元素是按score从大到小排序的 
  • zrevrange key start end       同上,返回结果是按score逆序的 
  • zincrby key incr member       按照incr幅度增加对应member的score值,返回score值 
  • zscore key member          返回给定元素对应的score 
  • zremrangebyrank key min max      删除集合中排名在给定区间的元素 
  • zinterstore distination numkeys   相交多个结果集,导致排序的设置存储在一个新的结果集 
  • zunionstore destination numberkeys 添加多个排序集合导致排序的设置存储在一个新的结果集,可                    以实现取得最大值(max),取得最小值(min)

你可能感兴趣的:(redis五大数据类型及常用命令)