Redis学习(一)

一、Redis 介绍:

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、
Key-Value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合
(sets) 和 有序集合(sorted sets)等类型。
特点:
  1.Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  2.Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  3.Redis支持数据的备份,即master-slave模式的数据备份。

二、Redis 优势

1.性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
2.丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 
  数据类型操作。
3.原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。
  多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
4.丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性

三、Redis的数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)
及zset(sorted set:有序集合)。
1.String(字符串)
    存储方式:key :value
    tring 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的
    对象。
    string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。
    eg:
        redis 127.0.0.1:6379> SET name "runoob"
        OK
        redis 127.0.0.1:6379> GET name
       "runoob"
       上面使用了 Redis 的 SET 和 GET 命令。键为 name,对应的值为 runoob。
2.Hash(哈希)
    Redis hash 是一个键值(key=>value)对集合。
    Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
    eg:
        redis> HMSET myhash field1 "Hello" field2 "World"
		"OK"
		redis> HGET myhash field1
		"Hello"
		redis> HGET myhash field2
		"World"
		上面使用了Redis HMSET, HGET 命令,HMSET 设置了两个 field=>value 对, HGET 获取对应 
		field 对应的value。每个 hash 可以存储 232 -1 键值对(40多亿)。
3.List(列表)
  Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者
  尾部(右边)。
     eg:
	    redis 127.0.0.1:6379> lpush runoob redis
		(integer) 1
		redis 127.0.0.1:6379> lpush runoob mongodb
		(integer) 2
		redis 127.0.0.1:6379> lpush runoob rabitmq
		(integer) 3
		redis 127.0.0.1:6379> lrange runoob 0 10
		1) "rabitmq"
		2) "mongodb"
		3) "redis"
		redis 127.0.0.1:6379>
  列表最多可存储 2^32 - 1 元素 (4294967295, 每个列表可存储40多亿)。
 4.Set(集合)
   Redis的Set是string类型的无序集合。
   集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
   sadd 命令:
      添加一个 string 元素到 key 对应的 set 集合中,成功返回1,如果元素已经在集合中返回 0,如果
      key对应的 set 不存在则返回错误
      sadd key member
      eg:
      	redis 127.0.0.1:6379> sadd runoob redis
		(integer) 1
		redis 127.0.0.1:6379> sadd runoob mongodb
		(integer) 1
		redis 127.0.0.1:6379> sadd runoob rabitmq
		(integer) 1
		redis 127.0.0.1:6379> sadd runoob rabitmq
		(integer) 0
		redis 127.0.0.1:6379> smembers runoob
		1) "redis"
		2) "rabitmq"
		3) "mongodb"
	   集合中最多可存储 2^32 - 1 元素 (4294967295, 每个列表可存储40多亿)。
5.zset(sorted set:有序集合)
    Redis zset 和 set一样也是string类型元素的集合,且不允许重复的成员。
    不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的
    排序。
    zset的成员是唯一的,但分数(score)却可以重复。
    zadd 命令:
       添加元素到集合,元素在集合中存在则更新对应score
       zadd key score member 
       eg:
          redis 127.0.0.1:6379> zadd runoob 0 redis
		  (integer) 1
		  redis 127.0.0.1:6379> zadd runoob 0 mongodb
		  (integer) 1
		  redis 127.0.0.1:6379> zadd runoob 0 rabitmq
		  (integer) 1
		  redis 127.0.0.1:6379> zadd runoob 0 rabitmq
		  (integer) 0
		  redis 127.0.0.1:6379> > ZRANGEBYSCORE runoob 0 1000
		  1) "mongodb"
		  2) "rabitmq"
		  3) "redis"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值