- 1. 北京传智播客教育 www.itcast.cnRedis讲师:陈近南
- 2. Redis学习内容什么是redis
为什么使用redis
什么场合使用redis
什么时候使用redis
redis的好处
redis与memcache的比较
编译安装redis
redis各种数据结构操作
php操作redis
- 3. Redis什么是RedisRedis是Remote Dictionary Server(远程数据服务)的缩写
由意大利人 antirez(Salvatore Sanfilippo) 开发的一款 内存高速缓存数据库
该软件使用C语言编写,它的数据模型为 key-value
它支持丰富的数据结构,比如 String list hash set sorted set。
可持久化,保证了数据安全。
- 4. Redis为什么使用Redis是一款数据库产品,有数据存储功能
高速读取数据(in-memory)
减轻数据库负担
有集合计算功能(优于普通数据库和同类别产品)
多种数据结构支持
- 5. Redis什么场合适合使用Redis[Sort Set]排行榜应用,取top n操作,例如sina微博热门话题
[List]获得最新N个数据 或 某个分类的最新数据
计数器应用
[Set]sns(social network site)获得共同好友
[Set]防攻击系统(ip判断)等等
- 6. Redis使用Redis的好处(与memcache的比较)Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持master-slave(主—从)模式应用。
Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
Redis单个value的最大限制是1GB, memcached只能保存1MB的数据
- 7. Redisredis八卦作者是意大利的Salvatore Sanfilippo(antirez),又是VMWare大善人聘请了他专心写Redis
默认端口6379,是手机按键上MERZ对应的号码,意大利歌女(Alessia Merz)梅尔兹的代名词
- 8. Redis相关资源官方网址:http://redis.io/
redis 中文资料站: http://www.redis.cn/
redis 命令手册: http://www.redisdoc.com/en/latest/index.html
php操作redis:http://blog.sina.com.cn/s/blog_3dbab2840100uo5l.html
- 9. Redis编译安装Redis详情请参考《Redis安装教程》
- 10. Redis编译安装PHPRedis详情请参考《Redis安装教程》
- 11. RedisRedis支持的数据类型Keys
给存储在redis 内存中的数据起的变量名字
Values
Strings (Binary-safe strings )
Lists (Lists of binary-safe strings )
Sets (Sets of binary-safe strings)
Sorted sets (Sorted sets of binary-safe strings )
Hash
- 12. RedisRedis-Key类型key的命名规则不同于一般语言,键盘上除了空格、换行外其他的大部分字符都可以使用。
像“my key”和“mykey\n”这样包含空格和换行的key是不允许的。
我们在使用的时候可以自己定义一个Key的格式。
例如 object-type:id:field
Key不要太长。占内存,查询慢。
Key不要太短。像u:1000:pwd 就不如 user:1000:password 可读性好
- 13. Redis① keys键操作
- 14. Redis数据类型Stringstring是redis最基本的类型
redis的string可以包含任何数据。包括jpg图片或者序列化的对象。
单个value值最大上限是1G字节。
如果只用string类型,redis就可以被看作加上持久化特性的memcache
- 15. Redis② string类型操作
- 16. Redis数据类型Listlist类型其实就是一个双向链表。通过push,pop操作从链表的头部或者尾部添加删除元素。
这使得list既可以用作栈,也可以用作队列。a1a2a3出出进进
- 17. Redis③ list类型操作
- 18. Redis数据类型Setredis的set是string类型的无序集合。
set元素最大可以包含(2的32次方-1)个元素。
关于set集合类型除了基本的添加删除操作,其他有用的操作还包含集合的取并集(union),交集(intersection),差集(difference)。通过这些操作可以很容易的实现sns中的好友推荐功能。zhangsan lisi wangwu zhaoliu该set集合不同于list列表,其内部是不允许有重复元素的
- 19. Redis④ set类型操作
- 20. Redis数据类型Sort Set和set一样sorted set也是string类型元素的集合,
不同的是每个元素都会关联一个权。
通过权值可以有序的获取集合中的元素1000 a1999 b1701 c1权值score数据data
- 21. Redis⑤ sort set排序类型
- 22. Redis数据类型Hashhash数据类型存储的数据与mysql数据库中存储的一条记录极为相似。
- 23. Redis⑥ hash类型
- 24. Redisredis的持久化方式两种方式:
①Snapshotting(快照)也是默认方式
②Append-only file(缩写 aof)的方式
会将每一个收到的写 命令都通过 write 函数追加到文件中当 redis 重启时会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容
- 25. Redisredis的持久化方式①Snapshotting(快照)方式
默认的文件名为 dump.rdb
save 900 1 #900 秒内如果超过 1 个 key 被修改,则发起快照保存
save 300 10 #300秒超过10个key被修改,发起快照
save 60 10000 #60秒超过10000个key被修改,发起快照
- 26. Redisredis的持久化方式②Append-only file(缩写 aof)的方式
appendonly yes //启用 aof 持久化方式
appendfilename appendonly.aof //保存命令的文件# appendfsync always //每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用
appendfsync everysec //每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐
# appendfsync no //完全依赖 os,性能最好,持久化没保证
- 27. Redisredis的持久化相关指令bgsave 异步保存数据到磁盘(快照保存)
lastsave 返回上次成功保存到磁盘的unix时间戳
shutdown 同步保存到服务器并关闭redis服务器
bgrewriteaof 当日志文件过长时优化AOF日志文件存储
./redis-cli bgrewriteaof
./redis-cli bgsave
./redis-cli -h 127.0.0.1 -p 6379 bgsave #手动发起快照
- 28. Redis主从配置实例
- 29. RedisRedis主从复制特点master可以有多个slave
除了多个slave连接到master外,slave也可以连接到其他slave,形成网状结构
三 可以让slave做读请求,master做写操作
- 30. RedisRedis部署
- 31. Redis相关资源官方网址:http://redis.io/
redis 中文资料站: http://www.redis.cn/
redis 命令手册: http://www.redisdoc.com/en/latest/index.html
php操作redis:http://blog.sina.com.cn/s/blog_3dbab2840100uo5l.html