草庐IT

redis - 如何在redis中表示product_id和product attribute数据

我有多个产品的数据,Product_id:1和Product_attributes:Vitamin_A->200,Vitamin_D->400Product_id:2和Product_attributes:Vitamin_A->200,Vitamin_D->400....将其存储在Redis商店中的最佳方式是什么?我在考虑HMSET,但我不知道是否可以通过它访问每个单独的属性(例如Vitamin_A)? 最佳答案 Redis中的哈希是一个完美的用例。您可以通过HGETproduct_id:1Vitamin_A获取散列中的单个字段,或

linux - 不小心从redis中删除了一个表,有没有回滚之类的操作?

在Redis上工作一年了,还没有遇到过这个问题。突然去删除表中的某条记录,把整个表都删了。我需要一些帮助。 最佳答案 根据Redis文档,它不支持回滚事务,如果您有关系数据库背景,Redis命令可能会在事务期间失败而不回滚这一事实对您来说可能很奇怪。Howevertherearegoodopinionsforthisbehavior:Rediscommandscanfailonlyifcalledwithawrongsyntax(andtheproblemisnotdetectableduringthecommandqueueing

php - redis大 channel 数性能

我想用redis做缓存。一个数据集由多个键组成。这些键有不同的大小。最大的重约20k。对于用例,最好将这些键的组合组成redischannel键。这样,如果进行了更新,我可以只刷新一小部分数据。channel中保存的集合越大,我丢失的缓存就越多。但我想知道拥有大量channel是否有任何缺点。如果我单独使用最大的key,这大约是20k。如果我拿另一个乘以大约15倍的key。第三个channel目前可以再次将其乘以3,但可能会增加到20或更多。那就是600万个channel。我在使用多个channel时会遇到麻烦吗?例子:我正在缓存有关不同类型车辆的信息。所以我可以制作如下channel

c# - 1MB 值及更多值的键/值存储

我正在使用Redis作为键/值存储。问题是我的值大于1MB,它appearsredis不能很好地处理大于100K的值(获取这些值所花费的时间并不比较小的值高)。据说我应该将大值分成block。我觉得我做错了什么,也许redis不是适合我的用例的解决方案?或者,是否有任何c#包可以处理此用例的block管理? 最佳答案 您可以尝试增加连接超时。问题是线路忙时等待。在Redis中,如果您同时发出两个命令,它会按顺序处理它们。所以你会得到第一个的快速答案和第二个的慢速答案。在竞争的并行系统中,您将开始同时获得两个答案,因此两个答案都会很慢

laravel - 使用redis缓存用户数据

我正在使用Laravel为在线考试构建一个Web应用程序。我是这样的:每次用户单击答案时,它都会查询数据库并保存它。答案采用字符串格式,例如“a、b、e、c”等等​​。现在因为一旦应用程序部署在VPS上,它将被许多用户同时使用。我的预测是同时有500个用户的峰值。我想先将答案保存在redis缓存中,然后在考试结束后将其保存到数据库中。这是减少服务器负载的好方法吗?是否可以像那样使用redis?我还能做些什么简单且可实现的事情?谢谢。 最佳答案 最好使用session和session存储到redis中以减少服务器负载。如果您不想加载任

Laravel Socket.io,Redis 事件正在广播但未在客户端显示

在我的laravel.log中,我可以看到事件正在channel上广播,即[2018-08-3013:41:27]local.INFO:Broadcasting[App\Events\NewRating]onchannels[rating]withpayload:{"music":{"id":42,"name":"1535368873_admin.mp3","path":"public\/music\/1535368873_admin.mp3","rating":53,"user_id":4,"created_at":"2018-08-2711:21:13","updated_at":

java - WRONGTYPE 针对持有错误类型值的键的操作

我正在遍历arrayList并使用redisrpush函数将字符串存储在redis中。但是,我收到以下错误:WRONGTYPEOperationagainstakeyholdingthewrongkindofvaluefor(Stringabc:myList){jedis.rpush(abc,(String[])myList.toArray(newString[myList.size()]));提前致谢! 最佳答案 该错误非常直白且不言自明-您尝试使用的key类型错误(不是列表)。您可以使用TYPE来验证这一点该键上的命令。

amazon-ec2 - 将 redis key 从一个 ec2 复制到另一个 ec2

我的ec2中有10万个key。我想在没有BGSAVE和SAVE命令的情况下将所有key复制到另一个ec2。我想用Linux命令复制所有key。是否有任何Linux命令可以这样做? 最佳答案 您好,您可以通过以下命令将您的Redis键从一个实例移动到另一个实例选项一MIGRATEHOSTNAMEPORT""05000KEYSkey1key2key3选项二COPYHOSTNAMEPORT""05000KEYSkey1key2key3希望对您有所帮助。 关于amazon-ec2-将redisk

java - 将好友列表实现到数据库中的最佳方法? MySQL

所以我的项目有一个“好友列表”,我在MySQL数据库中创建了一个表:姓名A姓名B主键(名称A,名称B)这将导致大量条目,但为了确保我的数据库规范化,我不确定还有什么方法可以实现这一点?我的项目也使用Redis..我可以将它们存储在那里。当一个人加入服务器时,我必须搜索所有条目以查看他们的名字是nameA还是nameB,然后将这两个名字放在一起作为friend,这也可能是低效的。干杯。 最佳答案 这个任务很常见。您想要存储A|B与B|A具有相同含义的对。由于一个表有列,两者中的一个将存储在第一列中,另一个将存储在第二列中,但是先存储谁

redis - Redis 镜像目前是否可以在 Windows 上与 Docker 一起使用?

我在Linux容器中运行Docker。当我尝试执行Redis拉取操作时,我得到“docker:list列表条目中没有适用于windows/amd64的匹配list。”我看过很多教程显示redis在dockerwindows上运行。更高版本的redis是否发生了某些变化,这意味着它不再适用于Windows上的docker? 最佳答案 使用--experimental标志启动dockerd.exe,您的问题将得到解决。在谷歌上很容易找到:https://github.com/docker/for-win/issues/1100https