Redis 1 - 基本命令

一. Redis 的应用

  1. 为热点数据加速查询,如热点商品等高访问量信息;
  2. 任务队列,如秒杀 ,抢购等;
  3. 即时信息查询,如公交到站信息,在线人数信息等;
  4. 时效性信息控制,如验证码时间控制,投票控制;
  5. 分布式数据共享,如session;
  6. 消息队列;
  7. 分布式锁。

二. Redis 支持类型

key永远为string类型,value可以为 string、list、hash、set、sorted_set
类似于Java中的String、LinkedList、HashMap、HashSet、TreeSet。

key 命名规范:表名:主键名:主键值:字段名,如 user: id:2213:fans。

1. string 命令

常用命令:

  • get/set,mget/mset,strlen(字符串长度),append(追加到字符串后)

扩展命令:

  • incr/decr,incrby/decrby,incrbyfloat/decrbyfloat 用于做自增自减操作。可用于分布式数据库控制主键生成。
  • setex/psetex 用于设置数据具有指定的生命周期。可用于限制微信号投票。

2. hash 命令

常用命令:

  • hget/hset,hgetall,hdel,hmset/hmget,hlen,hexists

扩展命令:

  • hkeys 获取key所有的field
  • hvals 获取key所有的value
  • hincrby/hincrbyfloat 按值增加
  • hsetnx 无值set,有值不做处理

注意:hash 的 value 也只能存储字符串,不允许嵌套存储 hash 结构。hgetall 操作可以获取所有属性,但是如果 field 过多,效率会很低,可能成为数据访问的瓶颈。

3. list 命令

常用命令:

  • lpush : 先进的元素排在最后
  • rpush:先进的元素排在最前
  • lrange/lindex:获取数据
  • llen
  • lpop/rpop
    lpush + rpop 或 rpush + lpop 保证元素先进先出,否则是先进后出。

扩展命令:

  • blpop/brpop:阻塞式获取数据,在规定时间内等待获取数据,超时则返回。
  • lrem : 移除指定的数据。

4. set 命令

set 的存储结构是由 hash 演变而来,以 hash 的 field 作为值(value 为 nil)进行存储就变成了 set。set 弥补了 list 查询效率低的缺陷,且不允许数据重复。

set 可以用于数据去重、求集合交集等。

常用命令:

  • sadd 向key中添加元素
  • smembers 查看key的成员
  • srem 删除key中的成员
  • scard 获取key 中数据个数
  • sismember 判断key中是否存在某成员

扩展命令:

  • srandmember 随机获取集合中指定数量的成员
  • spop 随机获取集合数据并移除
  • sinter 求两个集合的交集
  • sunion 求两个集合的并集
  • sdiff 求两个集合的差集(有方向性)

5. sorted_set 命令

支持排序的存储结构,在 set 的存储结构基础上添加可排序字段 score。

常用命令

  • zadd key score member 添加数据(score为权重)
  • zrange 获取全部数据(由小到大)
  • zrevrange 获取全部数据(由大到小)
  • zrem 删除数据

扩展命令

  • zrangebyscore/zrevrangebyscore 按条件查询数据
  • zremrangebyrank 按条件删除
  • zcard、zcount 获取数据数量
  • zrank 获取数据对应的索引(排名)
  • zscore 获取数据的score值
  • zincrby 增加score值

三. key 常用操作

1. 常用操作

  • del
  • exists
  • type(判断类型)

2. 时效性操作

  • 设置key过期时间:expire、pexpire
  • 获取key有效时间:ttl、pttl;
  • 将key的有效期设置为永久:persist

3. 查询操作

  • keys pattern

匹配模式:*匹配所有;?匹配单个字符;[]匹配中括号中的某一字符。

4. 其他操作

  • 改名操作:rename(改名后如果名字已经存在则覆盖)、renamenx
  • 排序操作:sort (为 list、set、sorted_set 排序 )
  • 查询key相关指令:help @generic

5. db 操作

redis 存储空间实际上划分成 0-15 区域,16个区域共用一块内存,但是区域之间数据相互独立。

  • select 命令选择操作的区域;
  • move 移动数据至另一个区域;
  • dbsize 获取当前区域key的数量;
  • flushdb 清除当前区域所有的 key;
  • flushall 清除所有区域所有的key。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值