Redis学习笔记1-基础命令及数据结构: http://blog.guoyb.com/2016/07/21/learn-redis-basic-commands/
Redis学习笔记2-事务与过期时间: http://blog.guoyb.com/2016/08/23/learn-redis-adv/
Redis学习笔记3-排序与消息通知: http://blog.guoyb.com/2016/08/24/learn-redis-adv-2/
学习笔记的第四部分记录Redis的脚本功能、持久化和集群。
脚本
在Python中使用redis-py来操作redis数据库。
下面是一个简单的例程:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# -*- coding: utf-8 -*- import redis r = redis.StrictRedis(host='127.0.0.1', port=6379, db=0) r.set('foo', 'bar') print r.get('foo') r.hmset('dict', {'name': 'Bob'}) people = r.hgetall('dict') print people pipe = r.pipeline() pipe.set('foo', 'bar') pipe.get('foo') result = pipe.execute() print result |
一个较为复杂的例子如下,配合web.py使用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# -*- coding: utf-8 -*- import web import time import redis r = redis.StrictRedis() urls = ( '/', 'visit', '/online', 'online' ) app = web.application(urls, globals()) def time_to_key(current_time): return 'active.users:' + time.strftime('%M', time.localtime(current_time)) def keys_in_last_10_minutes(): now = time.time() result = [] for i in range(10): result.append(time_to_key(now - i * 60)) return result class visit: def GET(self): user_id = web.ctx.env['HTTP_USER_AGENT'] current_key = time_to_key(time.time()) pipe = r.pipeline() pipe.sadd(current_key, user_id) pipe.expire(current_key, 10 * 60) pipe.execute() return 'User:\t' + user_id + '\r\nKey:\t' + current_key class online: def GET(self): online_users = r.sunion(keys_in_last_10_minutes()) result = '' for user in online_users: result += 'User agent:' + user + '\r\n' return result if __name__ == "__main__": app.run() |
这个例子用redis缓存当前在线用户信息,用户无操作10分钟后切换到下线状态。
持久化
Redis支持两种持久化方式:
- RDB方式:采用数据快照,进行压缩,通过子进程进行后台持久化。利用写时复制(COW)进行优化,同时支持无硬盘方式(直接发送给网络传输)。
- AOF方式:记录一系列的Redis命令。支持定时重写AOF,从而去除冗余命令。
集群
- 支持一主多从的结构,适用于写入少(只从主数据库写入),读取多(可以从多个从数据库同步读取)的读写分离场景。
- 主从数据库之间会自动同步数据(从主到从)。
- 数据持久化可以放在从数据库做,从而降低主数据库负载。
- 引入哨兵机智,监控主从数据库运行情况,实现自动重启,主从切换。多个哨兵之间还可以互相监控。
- 支持分片,使用redis-trib.rb自动增加节点(可做重新映射,并自动迁移数据)。和mongo不同,redis集群是纯分布式的,并没有一个总控的路由进程mongos。
转载请注明出处: http://blog.guoyb.com/2016/09/09/learn-redis-other/
相关推荐
`NoSql数据库之Redis笔记.docx`很可能是关于Redis的使用和最佳实践的学习笔记,可能涵盖了Redis的数据类型、命令操作、集群搭建等内容。`redis.conf-中文翻译.txt`则提供了`redis.conf`配置文件的中文解释,有助于...
在本“Redis学习笔记-包括周阳和狂神说”中,我们将深入探讨Redis的核心概念、功能特性以及实际应用。 1. Redis基本概念 - 键值对:Redis的核心数据结构,键是唯一的标识,值可以是多种类型,如字符串、哈希、列表...
### 超详细的Redis学习笔记知识点汇总 #### 1. Redis 的启动与停止 ##### 1.1 直接启动 Redis 服务 - **默认端口启动**:使用 `$ redis-server` 命令,默认监听端口为 `6379`。 - **指定端口启动**:使用 `$ ...
Redis以其丰富的数据结构(如字符串、哈希、列表、集合、有序集合)和高效的操作命令著称,提供了多种数据操作原子性,确保了数据一致性。 二、Redis的数据类型 1. 字符串(String):基本的数据类型,支持设置、获取...
一级分类:基础知识- Redis 数据类型- Redis 命令- Redis 过期策略- Redis 事务- Redis 持久化- Redis 发布订阅- Redis Lua 脚本- Redis 位图操作- Redis 分布式锁- Redis 主从复制- Redis 集群- Redis Sentinel- ...
这只是 Redis 学习的基础,深入使用还需要掌握更多的高级特性和最佳实践,例如集群搭建、主从复制、Lua 脚本、Pipeline 使用等。随着对 Redis 的了解加深,你可以将其应用到更复杂的系统设计中,优化性能和提高系统...
1. Redis简介:Redis是一个开源(BSD许可),内存中的数据结构存储系统,它可以用作数据库、缓存和消息代理。它支持多种数据结构,如字符串、哈希、列表、集合、有序集合等,这些数据结构设计巧妙,能高效地处理大量...
Redis是一款高性能的...以上是对Redis基本命令的概述,实际应用中还会涉及到更复杂的操作和策略,如集群搭建、主从复制、Lua脚本等。熟练掌握这些命令,可以有效提升开发效率,并确保 Redis 在项目中的高效稳定运行。
Redis是一款高性能的键值存储...在实际开发中,了解和熟练掌握这些基本命令和概念,将有助于你高效地利用Redis解决各种问题,提升系统的性能和稳定性。通过不断实践和学习,你还能探索更多Redis的高级特性和应用场景。
简单来说 redis 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以存写速度非常快,因 此 redis 被广泛应用于...除此之外,redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。
2. **持久化**:Redis提供RDB(快照)和AOF( Append Only File)两种持久化方式,确保在服务器重启后能恢复数据。RDB在指定时间间隔生成数据快照,而AOF记录所有写操作日志。 3. **主从复制**:Redis支持主从复制...
4. Redis的持久化机制:包括RDB快照和AOF日志,确保在系统崩溃或意外停机后能够恢复数据。 5. Redis事务与Lua脚本:Redis支持简单的事务操作,以及通过Lua脚本实现更复杂的原子操作。 6. Redis的集群与复制:Redis...
Redis以其高效的性能、丰富的数据结构和灵活的数据持久化方案而备受开发者青睐。以下是对Redis的一些核心知识点的详细介绍,以及相关的案例实战。 1. **Redis的数据类型** - **字符串(String)**:最基础的类型,...
除此之外,redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案 假如用户第一次访问数据库中的某些数据。这个过程会比较慢,因为是从硬盘上读取的。将该用户访问的数据存在数 缓 存中,这样下一次再访问...
这份“redis笔记+资料”提供了全面的学习资源,非常适合初学者掌握 Redis 的基础知识和常见用法。 Redis 的主要特点包括: 1. **内存存储**:Redis 将所有数据存储在内存中,读写速度极快,但这也意味着它不适合...
Redis,全称Remote Dictionary Server,是一款高性能的键值存储系统,常用于数据缓存、消息队列以及...同时,不断学习和实践Redis的高级特性,如主从复制、集群搭建、lua脚本等,将有助于你在IT开发领域更上一层楼。
Redis是一种高性能的键值数据库,常用于数据缓存、消息队列、持久化存储等多种场景。它的优势在于数据结构丰富,支持字符串、哈希、列表、集合、有序集合等多种类型,且操作速度快,数据一致性良好。 **Redis基础...
在这个"redis学习笔记(Markdown版本)(含目录)"的压缩包中,你将找到一份详细的学习资料,涵盖了Redis的基础知识到高级应用,帮助你深入理解和掌握这个强大的数据存储工具。 一、Redis基础知识 Redis支持的数据...
1. 数据结构:Redis中的数据类型非常丰富,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。这些数据结构都是基于底层高效的C语言数据结构实现,如SDS(Simple Dynamic String)替代了...
Redis,全称为Remote Dictionary Server,是一个开源的、基于内存的数据结构存储系统,常被用作数据库、缓存和消息中间件。它支持多种数据结构,如字符串、哈希、列表、集合和有序集合,这使得Redis在处理复杂数据...