Redis学习总结
1、什么是Redis
Redis是一种远程内存数据库,是一个速度非常快速的非关系型数据库,它可以存储键与5种不同类型的值之间的映射,可以将存储在内存的键值对数据持久化到硬盘,可以使用复制特性来扩展读性能,还可以使用客户端分片来扩展写性能。
2、与memcached的比较
高性能键值缓存服务器memcached经常被拿来与redis进行比较:这两者都可以存储键值映射,彼此的性能也相差无几,但是redis能够以两种不同的方式将数据写入硬盘,并且redis能够存储更多的数据类型,
3、redis数据结构
1)字符串类型(string),结构存储的值可以是字符串、整数或浮点数。可以对整个字符串或者字符串的其中一部分执行操作,对整个或浮点数执行自增或者自减操作
2)列表(list),一个链表,链表上的每个节点都包含了一个字符串。可以从链表的两端推入或者弹出元素,根据偏移量对链表进行修剪,读取单个或多个元素,根据值查找或者移除元素
3)集合(set),包含字符串的无序收集器,并且被包含的每个字符串都是独一无二、各不相同的。可以添加、获取、移除单个元素,检查一个元素是否存在一个集合中,计算交集、并集、差集,从集合里面随机获取元素
4)散列(hash),包含键值对的无序散列表。可以添加、获取、移除单个键值对,获取所有键值对
5)有序集合(zset),字符串成员与浮点数分值之间的有序映射,元素的排列顺序由分值的大小决定。可以添加、获取、删除单个元素,根据分值范围或者成员来获取元素
4、Redis其他的一些命令
1)发布与订阅。Redis自己实现的一些发布与订阅的功能,能够订阅给定的一个或多个频道(subscribe)、退订给定的一个或多个频道(unsubscribe)、向给定频道发送消息(publish)、订阅与给定模式相匹配的所有频道(psubscribe)、退订给定的模式(punsubscribe)
2)排序,sort命令。根据给定的选项,对输入列表、集合、有序集合进行排序,然后返回或者存储排序结果
3)Redis事物,Redis有5个命令可以让用户在不被打断的情况下对多个键执行操作,分别是:watch、multi、exec、unwatch、discard。可以通过非事务型流水线提升命令的执行性能
5、Redis持久化选项
Redis持久化就是将存储在内存中的数据持久化到硬盘上,Redis提供了两种不同的持久化方法来将数据存储到硬盘里面,一种方法是快照,它可以将存在于某一时刻的所有数据都写入硬盘里面。另一种方法叫只追加文件,它会在执行写命令时,将被执行的写命令复制到硬盘里面,这两种持久化方式既可以同时使用,又可以单独使用,甚至可以都不使用
6、Redis优化——降低内存占用
可以使用 短结构、通过分片将体积较大的结构重新划分为多个体积较小的结构、以及将数据打包存储在字符串键里面 来降低redis的内存占用