Redis基本操作-20150608

Redis基本操作-20150608
 
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

Redis和普通的Key-Value结构不同,Redis的Key支持灵活的数据结构,除了strings,还有hashes、lists、 sets 和sorted sets等结构。正是这些灵活的数据结构,丰富了Redis的应用场景,能满足更多业务上的灵活存储需求。

     Redis的数据都保存在内存中,而且底层实现上是自己写了epoll event loop部分,而没有采用开源的libevent等通用框架,所以读写效率很高。为了实现数据的持久化,Redis支持定期刷新(可通过配置实现)或写日志的方式来保存数据到磁盘。

一、数据类型:

     作为Key-value型数据库,Redis也提供了键(Key)和键值(Value)的映射关系。但是,除了常规的数值或字符串,Redis的键值还可以是以下形式之一:

●Lists (列表)
●Sets (集合)
●Sorted sets (有序集合)
●Hashes (哈希表)

键值的数据类型决定了该键值支持的操作。Redis支持诸如列表、集合或有序集合的交集、并集、查集等高级原子操作;同时,如果键值的类型是普通数字,Redis则提供自增等原子操作。

【setnx】
setnx name HongWan_new
由于原来name有一个对应的值,所以本次的修改不生效,且返回码是0。

【setex】
  设置key对应的值为string类型的value,并指定此键值对应的有效期。
  例如我们添加一个haircolor= red的键值对,并指定它的有效期是10秒,可以这样做:
    redis 127.0.0.1:6379> setex haircolor 10 red
  OK
  redis 127.0.0.1:6379> get haircolor
  "red"
  redis 127.0.0.1:6379> get haircolor
  (nil)
  redis 127.0.0.1:6379>
  可见由于最后一次的调用是10秒以后了,所以取不到haicolor这个键对应的值。

【setrange】

  设置指定key的value值的子字符串。

  例如我们希望将HongWan的126邮箱替换为gmail邮箱,那么我们可以这样做:
    redis 127.0.0.1:6379> get name
  "HongWan@126.com"
  redis 127.0.0.1:6379> setrange name 8 gmail.com
  (integer) 17
  redis 127.0.0.1:6379> get name
  "HongWan@gmail.com"
  redis 127.0.0.1:6379>
  其中的8是指从下标为8(包含8)的字符开始替换

【mset】
  一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置。
    redis 127.0.0.1:6379> mset key1 HongWan1 key2 HongWan2
  OK
  redis 127.0.0.1:6379> get key1
  "HongWan1"
  redis 127.0.0.1:6379> get key2
  "HongWan2"
  redis 127.0.0.1:6379>

【getset name HongWan_new】
【getrange name 0 6】【getrange name -7 -1】
【mget key1 key2 key3】

上一篇:Redis原理篇


下一篇:支撑微博亿级社交平台,小白也能玩转Redis集群(实战篇)