Redis 学习笔记
2018-01-25 16:48
363 查看
简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
Redis支持数据的备份,即master-slave模式的数据备份。
优势
性能极高: Redis能读的速度是110000次/s,写的速度是81000次/s丰富的数据类型:Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
原子性:Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
丰富的特性:支持 publish/subscribe, 通知, key 过期等等特性。
数据结构
字符串 - Stringstring类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个键最大能存储512MB。
set key value [EX seconds] [PX milliseconds] [NX|XX] get key 例: 127.0.0.1:6379> set string 'hello' OK 127.0.0.1:6379> get string "hello"
哈希 - Hash
Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
每个 hash 可以存储 232 - 1 键值对(40多亿)。
hset key field value hget key field hgetall key hmset key field value [field value ...] hmget key field [field ...] 例: 127.0.0.1:6379> hset hash name 'redis' (integer) 1 -- 返回添加hash的键值对数 127.0.0.1:6379> hget hash key2 "value3" 127.0.0.1:6379> hgetall hash 1) "key2" 2) "value3" 3) "name" 4) "redis" 127.0.0.1:6379> hmset hash age 24 gender male OK 127.0.0.1:6379> hmget hash key2 name 1) "value3" 2) "redis"
列表 List
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。列表最多可存储 2^32 - 1 元素 (4294967295, 每个列表可存储40多亿)。
lpush key value [value ...] rpush key value [value ...] lrange key start stop 例: 127.0.0.1:6379> lpush userlist user1 (integer) 1 127.0.0.1:6379> rpush userlist user2 user3 (integer) 3 -- 返回 list的大小 127.0.0.1:6379> lrange userlist 0 -1 1) "user1" 2) "user2" 3) "user3"
集合 -- Set
Redis的Set是string类型的无序集合。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)
根据集合内元素的唯一性,第二次插入的元素将被忽略。
集合中最大的成员数为 2^32 -1(4294967295,每个集合可存储40多亿个成员)
sadd key member [member ...] smembers key 例: 127.0.0.1:6379> sadd set card1 (integer) 1 127.0.0.1:6379> sadd set card1 (integer) 0 127.0.0.1:6379> smembers set 1) "item2" 2) "item3" 3) "card1"
有序集合 Zset
Redis zset 和 set一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
zadd key [NX|XX] [CH] [INCR] score member [score member ...] zrange key start stop [WITHSCORES] zrangebyscore key min max [WITHSCORES] [LIMIT offset count] 例: 127.0.0.1:6379> zadd xiaoming 97 math (integer) 1 127.0.0.1:6379> zadd xiaoming 98 chinese (integer) 1 127.0.0.1:6379> zrange xiaoming 0 10 withscores 1) "math" 2) "97" 3) "chinese" 4) "98" 127.0.0.1:6379> zrangebyscore xiaoming 98 100 1) "chinese"
这里分享一个平台给你们,如果你想拿高薪,想学习,想突破瓶颈,想跟别人竞争能取得优势,想学习Java技术或者想往Java工程师方面发展, 想进一些好的公司面试但担心面试不过的,可以加Java学习交流群:642830685
相关文章推荐
- 学习笔记之Yii使用redis
- 为么使用Redis及其产品定位 —— Redis学习笔记(二)
- Redis3.0.5学习笔记(一)基础入门
- Redis学习笔记一
- Redis 学习笔记一
- redis 学习笔记(6)-cluster集群搭建
- Redis学习笔记二
- 九 redis学习笔记之虚拟内存
- Redis学习笔记二——redis安装
- Redis学习笔记0--redis.conf配置项说明
- redis学习笔记(二)---集合类型
- Redis学习笔记五、Key数据类型
- Redis 学习笔记九 常见问题处理
- Redis学习笔记3 Java + Redis模拟秒杀场景
- Redis学习笔记
- Redis 学习笔记(一)安装与配置
- redis lua脚本学习笔记math.random()获取随机数
- Redis 学习笔记4-事物
- Redis简介、安装、配置、启用学习笔记
- Redis 学习笔记6-主从复制