草庐IT

database-caching

全部标签

caching - 在这些缓存场景中,代码在哪里执行?

我正在阅读有关缓存策略的内容,例如缓存端、直写、回写……在直写和回写的特定情况下,暗示缓存本身负责分别写入数据库和事件队列(有关完整上下文,这里是文章-https://github.com/donnemartin/system-design-primer#when-to-update-the-cache)例如write-through图示为申请代码:set_user(12345,{"foo":"bar"})缓存代码:defset_user(user_id,values):user=db.query("UPDATEUsersWHEREid={0}",user_id,values)cach

laravel - QUEUE_CONNECTION 'database' 工作但 'redis' 抛出 'Array to String conversion'

我只是想运行一个Event&Listener循环并将模型传递给它event(newLabelsCreated($model,'string'));这与QUEUE_CONNECTION=database完美配合,但与QUEUE_CONNECTION=redis配合使用时,它会抛出错误:#message:"Arraytostringconversion"#code:0#file:"/home/vagrant/Code/Upworks/myproj/vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php"#line:302#s

database - "appendfsync everysec"和 VM 有什么区别?

“appendfsynceverysec”和VM有什么区别? 最佳答案 仅追加文件系统(AOF),将每个命令的事务日志写入Redis的仅追加日志文件中。这确保了如果Redis实例崩溃,您可以恢复崩溃前的所有数据,但代价是一个大的日志文件。虚拟内存(VM)系统是一种增加Redis系统存储的方法,但可能会将未使用的值交换到磁盘。Redis的默认(非VM)操作是将所有内容存储在RAM中,但是VM系统允许您通过从RAM交换值来潜在地在RAM中存储更多数据-注意键将始终存储在RAM中以便快速访问。所以,但是功能是正交的-一种是持久化信息的方式

redis - celery + 2个redis : broker and cache

我有:1)标准端口上的redis-这是缓存2)端口53333上的redis-这是一个代理为什么celery获取任务成功,却没有返回到53333端口?我可以通过标准端口上的redis-cli看到这个任务。你能帮我更正“celeryconfig.py”吗? 最佳答案 很抱歉给您带来麻烦...按照插入到“celeryconfig.py”的字符串:CELERY_RESULT_BACKEND="redis"CELERY_REDIS_HOST="localhost"CELERY_REDIS_PORT=56379...以及所有工作。

database-design - Redis 是这个模型的正确选择吗

我有以下模型:|string(uniquekey)|about10otherstrings,thathaveallafixedlengthandmaybeempty|通常查询是使用“唯一键并查看其他字符串”。使用Redis应该没问题。但另一个查询是“显示n列为空的键”。我不确定Redis是否可以处理这种性能!? 最佳答案 要在Redis中解决这个问题,您需要维护一些元数据。一种解决方案是为每个“列”添加一个集合类型键,该键将保存该“列”为空白的所有元素的唯一键。显然,在您的应用程序逻辑中,您需要在主哈希中添加和删除值时从这些集合中添

database - 如何使用此哈希通过 Redis 获取数据

在文档中说你可以使用哈希来存储对象或任何类型的数据,然后你可以提取它们。例如,我想通过哈希保存一些用户的id,然后提取所有id,或者所有具有id的元素(类似的东西,我没有完成任何类似的事情),你能帮我吗?redis127.0.0.1:6379>setuser:id:1234"contentofmyfirstuser"OKredis127.0.0.1:6379>setuser:id:1235"contentofmyseconduser"OKredis127.0.0.1:6379>setuser:id:1236"contentofmythirduser"OKredis127.0.0.1:6

database - Redis:错误表中的错误数据

我正在尝试解决一个困扰我一个月的问题我正在使用Node.js和Redis构建应用程序的后端,由于我们的结构,我们必须将数据从一个Redis表传输到另一个(我所说的table是指我们使用“select”的那个,即“select2”)我们在一秒钟内收到大量请求并推送大量响应,无论我如何尝试我都无法阻止数据混合。假设我们有一个"teacherID"必须存储在Redistable#2中。以及必须存储在Redis表#4中的“studentID”。无论我尝试了什么(我已经多次检查我的代码),我都无法阻止teacherID进入studentID。我尝试的最后一个技巧实际上是在每次选择时放置回调。;r

database-design - 使用 Redis 的通知和新闻区

我有一个相册系统,人们可以上传照片并与其他用户互动。我使用mySql和Redis来处理流量和存储数据。在我的系统中,用户可以关注其他用户,如照片、评论和上传新照片。在这种情况下,我想在他们的墙上显示用户关注者的所有事件(如facebook时间线)。比如我关注用户30、40、50、60、70、80id。每当他们添加新照片时,我都希望在我的墙上看到它们。问题是这样的:用户30(他的ID)添加了3张新照片,我将此信息添加到photoevents:30:photoids->[55,56,57]。它在我的墙上是这样的:User30added3newphotos[55,56,57]然后用户40添加

caching - 使用 Redis 和 Service Stack for Piranha 编写缓存提供程序 - 跟踪缓存的对象类型

我正在编写一个缓存提供程序来缓存任何类型的对象。问题是当我从缓存中读取值时转换为正确的类型。using(varredisClient=redisClientsManager.GetClient()){redisClient.Set(key,value,newTimeSpan(1,0,0));}因此,很容易将对象放入缓存中,并在缓存中将其转换为字符串。当我把它从缓存中拉出来时,它变得有趣了using(varredisClient=redisClientsManager.GetClient()){returnredisClient.Get(key);}这是行不通的,因为我们没有合适的类型来

database - 我应该如何为分片建模数据?

通过阅读高级文档,我对数据库分片有了概念性的理解,但我还没有阅读很多代码或自己进行任何此类黑客攻击。在thisarticleaboutusingRedisasaprimarydatastore,作者强调Youneedtodesignyourdataaroundsharding我对设计标准犹豫不决:我不是很熟悉SQL的东西,但是如果我使用的是只知道键和值/文档的noSQL数据库,我的数据是否已经“可分片”了?或者值/文档是否也需要具有统一的模式?还有其他我遗漏的标准吗?作者也提到了Themostdifficultpartofthisisclearlydefininghowyousegme