Redis简介

  • Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
  • Redis是 NoSQL技术阵营中的一员,它通过多种键值数据类型来适应不同场景下的存储需求,借助一些高层级的接口使用其可以胜任,如缓存、队列系统的不同角色

特性

  • Redis 与其他 key - value 缓存产品有以下三个特点:
  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

优势

  • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
  • 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
  • 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
  • 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

应用场景

  • 用来做缓存(ehcache/memcached)——redis的所有数据是放在内存中的(内存数据库)
  • 可以在某些特定应用场景下替代传统数据库——比如社交类的应用
  • 在一些大型系统中,巧妙地实现一些特定的功能:session共享、购物车
  • 只要你有丰富的想象力,redis可以用在可以给你无限的惊喜…….

数据结构

  • redis是key-value的数据结构,每条数据都是⼀个键值对
  • 键的类型是字符串
  • 注意:键不能重复

值的类型分为五种:

  • 字符串string
  • 哈希hash(存的是一个对象)
  • 列表list
  • 集合set
  • 有序集合zset
stringhashlistset(无序集合)zset(有序集合)用权重来排序
增加set/msethset/hmsetlpush/rpush/linsertsadd key member1 member2 ...zadd key score1 member1 score2 member2 ...
修改set/mset key '新值'hset key name '新值'lset 列表名 index value
查询get/mgethget/hmgetlrange lpop/rpop(边取边删)smemberzrange key start stop / zrangebyscore key min max / zscore key member
删除del(连key一起删)del a2 a3(多删操作)del/hdellrem*(下方备注)srem key valuezrem key member1 member2 ... / zremrangebyscore key min max
append(追加字符串)hkeys获取所有属性linsert key before或after 现有元素 新元素sismember 判断在不在集合里面zrevrang key start stop(降序)
setex key 过期时间 值hvals获取所有值

键的指令

  • 查找键,参数⽀持正则表达式

    keys pattern
  • 例1:查看所有键

    keys *

    ![查看所有键]

  • 例2:查看名称中包含a的键

    keys a*
  • 判断键是否存在,如果存在返回1,不存在返回0

    exists key1
  • 例3:判断键a1是否存在

    exists a1
  • 查看键对应的value的类型

    type key
  • 例4:查看键a1的值类型,为redis⽀持的五种类型中的⼀种

    type a1
  • 删除键及对应的值

    del key1 key2 ...
  • 例5:删除键a2、a3

    del a2 a3
  • 设置过期时间,以秒为单位
  • 如果没有指定过期时间则⼀直存在,直到使⽤DEL移除

    expire key seconds
  • 例6:设置键a1的过期时间为3秒

    expire a1 3
  • 查看有效时间,以秒为单位

    ttl key
  • 例7:查看键bb的有效时间

    ttl bb

incr:加1

decr:减1

INCRBY num 5 : 每次增加5

相关网站