redis
2016-02-17 16:59
513 查看
转自菜鸟教程
一、简介
redis是一个高性能的key-value的数据库,redis有如下特点:
支持数据持久化,可以将内存中的数据持久化到磁盘中,重启的时候可以继续使用。
不仅支持简单的key-value类型的数据,还支持list、set、zset(sorted set有序集合)、hash等类型数据
支持数据的备份,即master-slave模式的数据备份。
redis的所有操作都是原子性的,可以对几个操作合并后的原子性执行,Redis还支持 publish/subscribe, 通知, key 过期等等特性。
二、redis数据类型
1、String字符串
string是redis最基本数据类型,类似于memcached key=>value式。String类型是二进制安全的,意味着redis的string可以包含任何数据包括jpg图片或者序列化的对象
string类型是redis最基本的数据类型,一个键最大能存储512M。
例:
2、Hash(哈希)
redis hash是键值对集合
redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象
例:
实例中我们使用了 Redis HMSET, HGETALL 命令,user:1 为键值。每个 hash 可以存储 232 - 1 键值对(40多亿)。
3、List(列表)
Redis列表是简单的字符串列表,按照插入顺序排序,可以添加一个元素到列表的头部(左边)或者尾部(右边)
例:
列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。
4、Set(集合)
redis的Set是string类型的无序集合,不允许重复,集合是通过哈希表实现的,所以添加、删除、查找复杂度都是O(1)
sadd命令将一个string元素添加到key对应的set集合中,成功返回1,如果元素已经在集合中则返回0,key对应的set不存在返回错误
例:
注意:以上实例中 rabitmq 添加了两次,但根据集合内元素的唯一性,第二次插入的元素将被忽略。
集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
5、zset(有序集合)
zset与set一样是string类型的集合,不允许重复。不同的是每个元素都会关联double类型的分数。redis正是通过分数来为集合中的成员从小到大排序,zset的成员是唯一的,但分数可以重复
zadd命令添加元素到集合,元素在集合中存在则更新对应的score
例:
一、简介
redis是一个高性能的key-value的数据库,redis有如下特点:
支持数据持久化,可以将内存中的数据持久化到磁盘中,重启的时候可以继续使用。
不仅支持简单的key-value类型的数据,还支持list、set、zset(sorted set有序集合)、hash等类型数据
支持数据的备份,即master-slave模式的数据备份。
redis的所有操作都是原子性的,可以对几个操作合并后的原子性执行,Redis还支持 publish/subscribe, 通知, key 过期等等特性。
二、redis数据类型
1、String字符串
string是redis最基本数据类型,类似于memcached key=>value式。String类型是二进制安全的,意味着redis的string可以包含任何数据包括jpg图片或者序列化的对象
string类型是redis最基本的数据类型,一个键最大能存储512M。
例:
>SET name "test" OK >GET name "test"
2、Hash(哈希)
redis hash是键值对集合
redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象
例:
redis 127.0.0.1:6379> HMSET user:1 username w3cschool.cc password w3cschool.cc points 200 OK redis 127.0.0.1:6379> HGETALL user:1 1) "username" 2) "w3cschool.cc" 3) "password" 4) "w3cschool.cc" 5) "points" 6) "200" redis 127.0.0.1:6379>
实例中我们使用了 Redis HMSET, HGETALL 命令,user:1 为键值。每个 hash 可以存储 232 - 1 键值对(40多亿)。
3、List(列表)
Redis列表是简单的字符串列表,按照插入顺序排序,可以添加一个元素到列表的头部(左边)或者尾部(右边)
例:
redis 127.0.0.1:6379> lpush w3cschool.cc redis (integer) 1 redis 127.0.0.1:6379> lpush w3cschool.cc mongodb (integer) 2 redis 127.0.0.1:6379> lpush w3cschool.cc rabitmq (integer) 3 redis 127.0.0.1:6379> lrange w3cschool.cc 0 10 1) "rabitmq" 2) "mongodb" 3) "redis" redis 127.0.0.1:6379>
列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。
4、Set(集合)
redis的Set是string类型的无序集合,不允许重复,集合是通过哈希表实现的,所以添加、删除、查找复杂度都是O(1)
sadd命令将一个string元素添加到key对应的set集合中,成功返回1,如果元素已经在集合中则返回0,key对应的set不存在返回错误
sadd key member
例:
redis 127.0.0.1:6379> sadd w3cschool.cc redis (integer) 1 redis 127.0.0.1:6379> sadd w3cschool.cc mongodb (integer) 1 redis 127.0.0.1:6379> sadd w3cschool.cc rabitmq (integer) 1 redis 127.0.0.1:6379> sadd w3cschool.cc rabitmq (integer) 0 redis 127.0.0.1:6379> smembers w3cschool.cc 1) "rabitmq" 2) "mongodb" 3) "redis"
注意:以上实例中 rabitmq 添加了两次,但根据集合内元素的唯一性,第二次插入的元素将被忽略。
集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
5、zset(有序集合)
zset与set一样是string类型的集合,不允许重复。不同的是每个元素都会关联double类型的分数。redis正是通过分数来为集合中的成员从小到大排序,zset的成员是唯一的,但分数可以重复
zadd命令添加元素到集合,元素在集合中存在则更新对应的score
zadd key score member
例:
redis 127.0.0.1:6379> zadd w3cschool.cc 0 redis (integer) 1 redis 127.0.0.1:6379> zadd w3cschool.cc 0 mongodb (integer) 1 redis 127.0.0.1:6379> zadd w3cschool.cc 0 rabitmq (integer) 1 redis 127.0.0.1:6379> zadd w3cschool.cc 0 rabitmq (integer) 0 redis 127.0.0.1:6379> ZRANGEBYSCORE w3cschool.cc 0 1000 1) "redis" 2) "mongodb" 3) "rabitmq"
相关文章推荐
- nginx+tomcat7+redis session共享
- nginx+tomcat7+redis session共享
- spring整合redis缓存配置
- Redis 未授权访问缺陷可轻易导致系统被黑
- redis/分布式文件存储系统/数据库 存储session,解决负载均衡集群中session不一致问题
- 这几天对Redis的初探,写一个阶段性的东西
- Wamp安装redis扩展和window安装redis-service(此文只针对学习redis)
- 借助共享缓存redis实现分布式锁
- phpredisAdmin
- java使用redis自带的排序api
- linux下redis安装部署
- asp.net网站redis session配置灵异事件
- redis原理-对象以及命令解析与执行
- redis 学习笔记(4)-HA高可用方案Sentinel配置
- Windows下redis 安装与PHP使用
- JAVA通过Redis设置集合并读取json
- Spring整合Redis作为缓存
- Redis 入门指南 pdf
- redis windows 版
- redis widows 下的配置