
redis
文章平均质量分 95
九嶷山
认真做事 用心做人
展开
-
redis ae.c/acMain()
int aeProcessEvents(aeEventLoop *eventLoop, int flags) { int processed = 0, numevents; /* Nothing to do? return ASAP */ if (!(flags & AE_TIME_EVENTS) && !(flags & AE_FILE_E原创 2017-12-18 17:09:53 · 639 阅读 · 0 评论 -
Redis应用场景
1. Redis常用数据类型Redis最为常用的数据类型主要有以下:StringHashListSetSorted setpub/subTransactions在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部内存管理中是如何描述这些不同数据类型的: 首先Redis内部使用一个redisObject对象来表示所有的key和value,re...转载 2018-12-27 15:02:07 · 264 阅读 · 0 评论 -
Redis和MySQL的结合方案
方案由从易到难的顺序,但无论哪种方法,都需要保证的是Reids和MySQL的数据一致性。方案一:程序同时写Redis和MySQL读Redis方案二:程序写MySQL, 使用Gearman调用MySQL的UDF,完成对Redis的写读Redis参考 《利用Gearman进行Mysql到Redis的复制》方案三:程序写MySQL, 解析binlog,数据放入队列写Redis读Redis参考 《利用Ca...转载 2018-05-22 16:09:52 · 23885 阅读 · 0 评论 -
游戏服务器之内存数据库redis客户端应用
本文主要介绍游戏服务器的对redis的应用。介绍下redis c++客户端的一些使用。存储结构设计:(1)装备道具的redis存储结构为例(Hashes存储类型)存储结构为: key : EQUIPMENTBAG角色id frield: 装备位置 value:装备信息存储一个装备道具到redis(使用hset 命令)一次存储玩家的装备背包里的所有道具(使用命令hmset)一次获取一个玩家的...转载 2018-05-26 17:55:26 · 544 阅读 · 0 评论 -
封装hiredis
在菜鸟教程自学了redis,总想着像Mysql一样,在C/C++中进行对接。于是查询了一些资料,最后找到了hiredis。然而直接用它的话,难免有点不方便。于是,对其进行封装。 hiredis直接去git上克隆,地址:https://github.com/redis/hiredis。 下载好之后,由于其自带Makefile,只要make一下就编译出静态库与动态库了,接着把头文件和静/动态库...转载 2018-05-22 11:10:54 · 671 阅读 · 0 评论 -
redis系列之数据库与缓存数据一致性解决方案
数据库与缓存读写模式策略写完数据库后是否需要马上更新缓存还是直接删除缓存?(1)、如果写数据库的值与更新到缓存值是一样的,不需要经过任何的计算,可以马上更新缓存,但是如果对于那种写数据频繁而读数据少的场景并不合适这种解决方案,因为也许还没有查询就被删除或修改了,这样会浪费时间和资源(2)、如果写数据库的值与更新缓存的值不一致,写入缓存中的数据需要经过几个表的关联计算后得到的结果插入缓存中,那就没有...转载 2018-05-26 11:44:46 · 291 阅读 · 0 评论 -
C++连接redis
redis是很好机遇key-value的缓存数据库,但是一直缺乏一个好的C++调用接口,官方有个hiredis的C接口,但是只能在linux下用这里简单介绍了一个开源的基于C++11和boos::asio的跨平台redis接口,可以实现C++操作redis,本文在windows环境下使用的,linux同理来源github地址:https://github.com/nekipelov/rediscl...转载 2018-05-25 10:43:46 · 6453 阅读 · 1 评论 -
c操作redis数据库
原文地址: c语言操作redis数据库前言下面简单介绍使用c语言操作redis数据库.准备内容hiredis 这是redis官方推荐的基于C接口的客户端组件 在redis的源码包的deps/hiredis下就有源码,也可以另行下载hiredis 安装方法,进入deps/hiredis目录,执行命令makemake installmkdir /usr/lib/hiredis\#下面两条影响运行...转载 2018-05-25 09:48:06 · 2935 阅读 · 0 评论 -
开始阅读redis源代码
各个源码文件的作用简介文件作用adlist.c 、 adlist.h双端链表数据结构的实现。ae.c 、 ae.h 、 ae_epoll.c 、 ae_evport.c 、 ae_kqueue.c 、 ae_select.c事件处理器,以及各个具体实现。anet.c 、 anet.hRedis 的异步网络框架,内容主要为对原创 2017-12-21 21:33:19 · 5951 阅读 · 0 评论 -
Redis Reactor模式
最近看了Redis的设计与实现,这本书写的还不错,看完后对Redis的理解有很大的帮助。另外,作者整理了一份Redis源码注释,大家可以clone下来阅读。Redis是开源的缓存数据库,由于其高性能而受到大家的欢迎。同时,它的代码量只有6w多行,相比起mysql动则上百万行的代码量,实现比较简单。Redis中有很多方面都很有意思,在这篇文章中我想探讨的是Redis中的Reactor转载 2017-12-21 21:31:50 · 3643 阅读 · 3 评论 -
redis client
redis 服务器是典型的一对多的服务器应用程序:一个服务器可以与多个客户端连接,每个客户端可以向服务器发送命令请求,而服务器则接受并处理客户端发送的请求,并将处理结果返回给客户端。 通过使用I/O多路复用技术, redis 服务器使用单线程单进程的方式处理命令请求,并与多个客户端连接进行网络通讯。客户端 redis-cli.c根据 redis-cli.c 中main函数分转载 2017-12-21 21:26:41 · 4064 阅读 · 0 评论 -
redis server
服务器与客户端是如何交互的redis客户端向服务器发送命令请求,服务器接收到客户端发送的命令请求之后,读取解析命令,并执行命令,同时将命令执行结果返回给客户端。客户端与服务器交互的代码流程如下图所示: Redis 服务器负责与多个客户端建立网络连接,处理客户端发送的命令请求,在数据库中保存客户端执行的命令产生的数据,并通过资源管理器来维护服务器自身的运转。red转载 2017-12-21 21:25:34 · 6025 阅读 · 0 评论 -
DB缓存
mysql ---- | memcache--| -- proxyDb --- Appredis --------|读: 读redis->没有,读mysql->把mysql数据写回redis (memcache)写: 写mysql->成功,写redis (memcache)几个要点1:memcache原创 2017-12-20 15:46:42 · 814 阅读 · 0 评论 -
redis+mysql数据同步(协同)C/C++实现
mysql -- 同步程序 -- redis --- App同步程序:处理mysql-redis间数据同步,1。mysql to redis 2.redis to mysql关于redis+mysql协同: 数据量巨大的情况下,频繁的操作数据库(这里值mysql),可能会造成击穿。而分布式缓存技术已经很成熟。 使用Nosql做缓存,然后异步的写入数据库,从而减小mysql甚转载 2017-12-20 11:05:07 · 2600 阅读 · 0 评论 -
redis 五种数据类型的使用场景
String1、String常用命令:除了get、set、incr、decr mget等操作外,Redis还提供了下面一些操作:获取字符串长度往字符串append内容设置和获取字符串的某一段内容设置及获取字符串的某一位(bit)批量设置一系列字符串的内容 应用场景:String是最常用的一种数据类型,普通的key/value存储都可以归为此类,value其实不仅是String...转载 2018-12-27 15:19:33 · 1106 阅读 · 0 评论