Catalogue
(参考资料:Redis学习教程Gitbook, RUNOOB Redis 教程)
What is Redis
- Redis is an opensource(BSDlicensed), in-memory datas tructure store, used as database, cache and message broker.
- database只是Redis的一个应用, In-memory data structure store
Data Structure | Operations |
---|---|
Strings - 字符串 | SET, GET, APPEND |
Hashes - 哈希表 | HSET, HGET |
List - 列表 | LPUSH, LRANGE, LSET, LTRIM |
Set - 集合 | SADD, SMEMBERS |
Sorted Set | ZADD, ZRANGE, ZRANGEBYSCORE |
Why Redis
- Redis 有三个主要的特点, 有别于其它很多竞争对手 :
- Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以 再次加载进行使用
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
- Redis支持数据的备份,即master-slave模式的数据备份。
- Redis 优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
- 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
- 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
- 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Application
- (1) Cache
- Replacement - LRU LFU
- Pre-load
- (2) Message Broker
- MQ
- (3) Database
Redis Install & Config
- Install Redis with MAC
1 | # Install |
Try CMD here : Redis Interactive Online
Redis in Python
The Python interface to the Redis key-value store.
Install
1 | sudo pip install redis |
Connection
Opening a Connection to Redis Using redis-py1
2
3
4
5
6#The following code creates a connection to Redis using redis-py:
import redis
redis_client = redis.Redis(
host = 'hostname',
port = port # redis default port 6379
)
redis提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。
redis连接实例是线程安全的,可以直接将redis连接实例设置为一个全局变量,直接使用。如果需要另一个Redis实例(or Redis数据库)时,就需要重新创建redis连接实例来获取一个新的连接。同理,python的redis没有实现select命令。
1 | # set, get |