前言
最近因项目需要用到redis,所以借助《Redis入门指南》(李子骅 编著)这本书快速入门了一下,此处记录下一些知识点(主要是命令),方便以后查阅。
简介
Redis是一个开源的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案。
Redis的三个主要特点:
Redis数据库完全在内存中,使用磁盘仅用于持久性。
相比许多键值数据存储,Redis拥有一套较为丰富的数据类型。
Redis可以将数据复制到任意数量的从服务器。
Redis的优势
异常快速:Redis的速度非常快,每秒能执行约11万集合,每秒约81000+条记录。
支持丰富的数据类型:Redis支持最大多数开发人员已经知道的像列表,集合,有序集合,散列等数据类型。这使得它非常容易解决各种各样的问题,因为我们知道哪些问题是可以通过它的数据类型更好地处理。
操作都是原子性:所有Redis操作是原子的,这保证了如果两个客户端同时访问的Redis服务器将获得更新后的值。
多功能实用工具:Redis是一个多实用的工具,可以在多个用例如缓存,消息,队列使用(Redis原生支持发布/订阅),任何短暂的数据,应用程序,如Web应用程序会话,网页命中计数等。
启动与停止
启动
1.直接启动
$ redis-server
默认使用6379端口。
趣闻一则:
6379是手机键盘上MERZ对应的数字,MERZ是一名意大利歌女的名字。
2.通过初始化脚本启动redis,可以使得redis随机启动(适合生产环境)。具体参见《Redis入门指南》。
停止
$ redis-cli SHUTDOWN
redis收到SHUTDOWN命令后会先断开所有客户端连接,然后根据配置执行持久化,最后完成退出。
此外也可以使用“kill redis进程的PID”来正常结束redis。
redis命令行客户端
我们可以通过redis-cli向redis发送命令,同时可以获取命令执行后的返回值。
配置
redis可以通过配置文件和命令行参数进行配置,配置文件模板参见redis.conf,它位于源代码目录的根目录中。
多数据库
redis是一个字典结构的存储服务器,一个redis实例提供了多个用来存储数据的字典,客户端可以指定将数据存储在哪个字典中。
同一个实例中的每个字典相当于一个独立的数据库,它对外是以一个从0开始的递增数字命名,不支持自定义名字。默认使用0号,可以通过SELECT命令来切换。
另外redis也不支持位每个数据库设置不同的访问密码,且多个数据库之间并不是完全隔离的,比如FLUSHALL命令可以清空一个实例中的所以数据库。
因此不同的字典适合当做命名空间来使用,比如0号用于生产环境,1号用于测试环境等等。
而不同应用的数据最好存储在不同实例当中。
入门-数据类型
热身
1.获取符合规则的键名列表
KEYS pattern
其中pattern支持glob风格通配符格式。
? 匹配一个字符
* 匹配任意个字符
[ ] 匹配括号间的任一字符
\ 用于转义
例子:
> SET bar 1
OK
> KEYS *
1) "bar"