我没有任何redis经验,我想用它来缓存mysql php结果,但它变得很复杂。
在mysql中我有两个表
tbl_users: id, username, first_name, last_name
tbl_orders: order_id, order_name, order_date........
假设我想在redis中存储用户和订单表记录,我看起来像json一样
{
"users":{
"1":{username:"jane", first_name:"user1", last_name:".."}
"2":{username:"jane", first_name:"user1", last_name:".."}
...........
}
"orders":{
"1":{order_name:"jane", order_date:"user1",....}
"1":{order_name:"jane", order_date:"user1", .....}
}
}
}
在这种情况下,我应该创建两个redis服务器,一个用于用户,另一个用于订单,或者我应该如何处理。
答案 0 :(得分:0)
首先,您应该阅读An introduction to Redis data types and abstractions,了解Redis是什么以及它可以做些什么。
听起来你想要在Redis中缓存3件事:
SET user:1 '{username:"jane", first_name:"user1", last_name:".."}'
,
然后用GET user:1
tbl_users
中的所有行时会非常快。
您可以使用Redis列表(通过LPUSH
并获取所有这些LRANGE {listname} 0 -1
)来缓存它。
但是你现在只是复制数据库表的功能,所以我真的不推荐它。tbl_orders
上有一个好的index,但Redis也可以使用列表来缓存它。