官方对Redis的阐述:
Redisis an open source, BSD licensed, advanced key-value cache and store. It is often referred to as adata structure server since keys can contain strings, hashes, lists, sets, sorted sets, bitmaps andhyperloglogs.
Redis是一个开源的,BSD许可的,高级的“键-值”缓存与存储。它经常被称为是一个数据结构服务器,因为键可以字符串、哈希表、列表、集合、有序集合、位图和hyperloglogs。
“Introduction to Redis”概要地介绍了Redis的关键特性和功能:
- atomic operations (所有命令都是原子操作)
- in-memory dataset (所有数据都放在内存中)
- 具有有限存活时间的键
- LRU缓存
- 持久化(RDB-内存快照|镜像、AOF-追加每个命令到日志)
- 主从异步复制
- Sentinel-自动故障转移
- 事务
- 发布/订阅
- Lua脚本
- 推荐使用Linux系统部署
和常见命令的使用场景:
- 增加哈希表中的值(某物不同维度的计数器或属性)
- 压入一个元素到一个列表(消息列表、队列)
- 从有序集合中获取排名最高的成员(TOP N、热点实时新闻、热点搜索)
[参考]
- Redis 命令中文版, huangz同学的翻译
【动手实践】
实践目标:探索高可靠和可扩展的分布式Redis缓存方案
在实践过程中有不懂的地方,都会去看看 Documentation有没我想要的东东~
从Redis源代码编译和安装的步骤,如下:
1. 从Download下载最新的稳定版并解压
Linux代码
- $ wget http://download.redis.io/releases/redis-2.8.17.tar.gz
- $ tar -xzf redis-2.8.17.tar.gz
2. 在解压文件之后,请务必先仔细阅读发布文件(redis-2.8.17)下的 INSTALL 和 README (里面有一些很重要的信息等待你去了解,能为你日后节省不少时间哦!你懂~ ^_^)
3. 按照 README 里的步骤说明来构建Redis、运行Redis、玩转Redis、安装Redis
3.1 构建Redis(务必在服务器上运行测试,确保所有命令都是可用的)
Linux代码
- $ cd redis-2.8.17
- $ make
- $ make test
构建时,我遇到提示"缺少C++编译器"的错误,并会提示可用的安装包("sudo apt-get install g++")。
3.2 运行Redis服务器
Linux代码
- $ src/redis-server
3.3 玩转Redis客户端
Linux代码
- $ src/redis-cli
- redis> set foo bar
- OK
- redis> get foo
- "bar"
3.4 安装Redis服务
Linux代码
- $ sudo make install
4. 若使用 utils/install_server.sh 来生成初始化脚本、配置文件、安装并启动服务的话,可以大大地节省配置的时间。但在使用之前,请先浏览一下其实现 (注意:服务已作为系统的一部分,会在系统重启时自动启动!)
Linux代码
- $ sudo sh install_server.sh
5. 在修改默认的配置属性之前,请浏览 redis.conf。若要修改默认的一些配置属性,可以参考 Redis configuration,更详细的信息就参考 Documentation的 Administration 主题内容
6. “Redis as an LRU cache”,Redis作为一个LRU缓存的配置参考 (内容很有价值!)
Redis.conf代码
- maxclients 65536
- maxmemory 128MB
- maxmemory-policy allkeys-lru
- maxmemory-samples 10
- # 注释掉 RDB 的所有触发规则
- #save 900 1
- #save 300 10
- #save 60 10000
7. “Master-Slave”主从架构的配置修改,请参考 @江南白衣 整理的关于Redis方面最全面的 Redis springside4的 “附录1: 对redis.conf默认配置的修改”
Redis.conf代码
- daemonize yes
8. 当 redis.conf 中的相关属性都修改完成后,就可以执行 utils/install_server.sh 脚本了
9. 使用“sudo netstat -anp | grep redis”来确认所有Redis服务是否都已启动成功
至此,所有Redis服务都启动完毕。