一步一步使用mycat(四):Redis数据库缓存
一、为什么要做数据库缓存? 二、缓存的读取的两种方式 1.读DB前,先读缓存,如果有直接返回,如果没有再读DB,然后写入缓存层并返回。 2.写DB前,先清(或者失效、过期)缓存,再写DB 三、缓存的存储 把Mysql结果集缓存到Redis的字符串或哈希结构中以后,我们面临一个新的问题,即如何为这些字符串或哈希命名,也就是如何确定它们的键。因为这些数据结构所对应的行都属于某个结果集,假如可以找到一种唯一标识结果集的方法,那么只需为这些数据结构分配一个唯一的序号,然后把结果集标识符与该序号...
利用消息中间件和缓存实现简单的秒杀系统(一):理论
Redis是一个分布式缓存系统,支持多种数据结构,我们可以利用Redis轻松实现一个强大的秒杀系统。 我们可以采用Redis 最简单的key-value数据结构,用一个原子类型的变量值(AtomicInteger)作为key,把用户id作为value,库存数量便是原子变量的最大值。对于每个用户的秒杀,我们使用 RPUSH key value插入秒杀请求, 当插入的秒杀请求数达到上限时,停止所有后续插入。 然后我们可以在台启动多个工作线程,使用 LPOP key 读取秒杀成功者的用户id,然后再操作数据库做最终的下订单减库存操作。 当然,上面Redis也可以替...
如何处理短生命期数据
如何处理短生命期数据 使用情况统计数据,测量数据,GPS定位数据,session数据,任何只是短时间内对你有用,或经常变化的数据。如果你发现自己正在使用定时任务从某个 表里删除有效期只有一小时,一天或数周的数据,那说明你没有找对正确的做事情的方法。使用redis, statsd/graphite, Riak,它们都是干这种事情更合适的工具。这建议也适用于对于收集那些短生命期的数据。 当然,用挖土机在后花园里种土豆也是可行的,但相比起从储物间里拿出一把铲子,你预约一台挖土机、等它赶到你的园子里挖坑,这显然更慢。你...
python删除redis所有数据
>>> import redis >>> r = redis.Redis(host='localhost', port=6379, db=0) >>> r.set('foo', 'bar') #或者写成 r['foo'] = 'bar' True >>> r.get('foo') 'bar' >>> r.delete('foo') True >>> r.dbsize() #库里有多少key,多少条数据 0 >>> r['test']='OK!' >>> r.save() #强行把数据库保存到硬盘。保存时阻塞 True -------------------------------- >>> r.flushdb() #删除当前数据库的所有数据 True >>&...
ubuntu安装配置redis
ubuntu安装配置redis 1、下载安装 ? cd /tmp wget http://redis.googlecode.com/files/redis-2.2.13.tar.gz tar -zxf redis-2.2.13.tar.gz cd redis-2.2.13 make sudo make install 这时Redis 的可执行文件被放到了/usr/local/bin 2、下载配置文件和init启动脚本: ? wget https://github.com/ijonas/dotfiles/raw/master/etc/init.d/redis-server wget https://github.com/ijonas/dotfiles/raw/master/etc/redis.conf sudo mv redis-server /etc/init.d/redis-server sudo chmod +x /etc/i...
window下安装和配置Redis
window平台Redis安装 redis windows安装文件下载地址:http://code.google.com/p/servicestack/wiki/RedisWindowsDownload#Download_32bit_Cygwin_builds_for_Windows 我选择的redis为最新版的安装文件,见下图: Redis安装文件解压后,有以下几个文件。见下图 redis-server.exe:服务程序 redis-check-dump.exe:本地数据库检查 redis-check-aof.exe:更新日志检查 redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于 Apache 的ab 工具). 在解压好redis的安装文件到E:\根目...
C#操作REDIS例子
windows SEVER包:http://code.google.com/p/servicestack/wiki/RedisWindowsDownload windows仅用来测试,性能不如在linux下高. c#使用: 引用的ServiceStackRedis:https://github.com/mythz/ServiceStack.Redis static void Main(string[] args) { var Redis = new RedisClient("127.0.0.1", 6379);//redis服务IP和端口 #region =insert= //var storeMembers = new List<string> { "jj", "lihui", "cc" }; ...
python使用redis示例
用python操作redis数据库,先下载redis-py模块下载地址 https://github.com/andymccurdy/redis-py 在解压目录运行 python setup.py install安装模块 使用: import redis r = redis.Redis(host=’localhost’, port=6379, db=0) r['test'] = ‘test’ #或者可以r.set(‘test’, ‘test’) 设置key r.get(‘test’) #获取test的值 r.delete(‘test’) #删除这个key r.flushdb() #清空数据库 r.keys() #列出所有key r.exists(‘test’) #检测这个key是否存在 r.dbsize() #数据库中多少个条数
Redis教程2
Redis教程2 该篇博客中使用的客户端来自于Redis官方网站,是Redis推荐的基于C接口的客户端组件,见如下链接: https://github.com/antirez/hiredis 前面已经非常详细的介绍了Redis的各种运行机制、操作命令和服务器初始化参数配置。然而需要说明的是,由于Redis官方并未提供基于C接口的Windows平台客户端, 因此下面的示例仅可运行于Linux/Unix平台。但是对于使用其它编程语言的开发者而言,如C#和Java,Redis则提供了针对这些语言的客户端 组件,通过该方式,同样可以达到基于Windows平台与Redis服务器进行各种交...
Redis教程1
这个系列博客中的内容和数据主要来自于Redis官方文档,本人仅仅是根据自己的经验对常用的内容做了进一步的解释和归纳。有兴趣的网友也可以直接阅读Redis的官方文档。由于本人的翻译和理解能力有限,如有不到之处,欢迎指正。 为什么自己当初要选择Redis作为数据存储解决方案中的一员呢?现在能想到的原 因主要有三。其一,Redis不仅性能高效,而且完全免费。其二,是基于C/C++开发的服务器,这里应该有一定的感情因素吧。最后就是上手容易,操作简 单。记得在刚刚接触Redis的时候,由于当时项目的工期相当紧...