NoSQL---Redis基础

Redis(REmote DIctionary Server)是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

Redis 与其他 key - value 缓存产品有以下三个特点:

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

Redis 优势

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

Redis 数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

Redis keys 命令

keys *  : 查看所有的key

keys "miao*" : 查看匹配前缀的keys

flushdb : 清空redis

type key : 查看key的类型

dbsize : 查看数据库中key的数量

exists key : 查看是否存在该元素

del  key : 删除元素

expire key seconds:设置该元素多少秒后失效

ttl key:查看还可以存活多久 -2表示key不存在  -1表示定时任务消失,永久存储 

Redis 字符串(String)

 

SET key value : 设置指定 key 的值,若存在则覆盖

GET key : 获取指定 key 的值。

MSET key value [key value ...] : 同时设置一个或多个 key-value 对。

MGET key1 [key2..] : 获取所有(一个或多个)给定 key 的值。

APPEND key value : 如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾

STRLEN key : 返回 key 所储存的字符串值的长度

redis提供原子 自增操作incr, 用来防止多线程并发出现数据错误(一定是数值才能进行加减)

incr key:原子的+1

decr key:原子的-1

incrby key integer:原子的+integer

decrby key integer:原子的-integer

Redis 哈希(Hash)

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

HSET key field value : 将哈希表 key 中的字段 field 的值设为 value 

HGET key field  : 获取存储在哈希表中指定字段的值

HMGET key field1 [field2]  :  获取所有给定字段的值

HMSET key field1 value1 [field2 value2 ]  :  同时将多个 field-value (域-值)对设置到哈希表 key 中。

HEXISTS key field : 查看哈希表 key 中,指定的字段是否存在。

HDEL key field2 [field2] : 删除一个或多个哈希表字段

HGETALL key  获取在哈希表中指定 key 的所有字段和值

HKEYS key : 获取所有哈希表中的字段

HVALS key : 获取哈希表中所有值

猜你喜欢

转载自liweirr789.iteye.com/blog/2378758