You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When we set out, we had planned to save objects with Redis only with hash type, but now I think that integrating other types of Redis into our system will make our project even stronger.
Currently, Model type using embeded hash function and flow. All Model functions and ModelInstance should be free from hashing and models should be written to return ModelInstance for each type.
All types has internal _write, _read functions and use it on that's business logic's. All models has to have common metronom datas like redisClient so i thing all models should extends on IModel interface and this interface include that datas.
// example usageimport{Hash,String,List}from'metronom';letuser=Hash(schema,keyPrefix,modelOptions);lettoken=String(key,'value');letids=List(key);user.isAdmin=true;// hSettoken.set('new-value');// setids.push(102);// lPushids.unshift(205);// rPush// ...awaituser.save();awaittoken.save()awaitids.save();awaittoken.destroy()
Implementation
IModel interface(common function like find, getByPk, getAll, destroy ) added and Model abstructed from hash type
@beyzaerkan This is biggest technical and philosophical major change of metronom. Although we leave an object-based structure and support all types, our forest structure will have to change a little more.
For example, since it does not make sense to use functions such as Model.findAll in some types, we will have to remove them and add functions related to types, which I think will separate us a little from our initial output.
We can still stick to our core philosophy by adding static functions to models.
I'm curious about your thoughts as this is a big decision.
what do you think about it?
Should all types have their own ctor or they will be generated by the metronom object like metronom.define?
Do you have any idea for internal working of this?
Do you have any time for developing or are you ready for this?
Motivation
When we set out, we had planned to save objects with Redis only with hash type, but now I think that integrating other types of Redis into our system will make our project even stronger.
Currently,
Model
type using embeded hash function and flow. AllModel
functions andModelInstance
should be free from hashing and models should be written to returnModelInstance
for each type.All types has internal
_write
,_read
functions and use it on that's business logic's. All models has to have common metronom datas likeredisClient
so i thing all models should extends onIModel
interface and this interface include that datas.Implementation
IModel
interface(common function like find, getByPk, getAll, destroy ) added andModel
abstructed from hash typeHashModel
implementedStringModel
implementedListModel
implementedSetModel
implementedGeospatialIndexesModel
implementedBitmapModel
implementedBitFieldModel
implementedmore detail for Redis types
The text was updated successfully, but these errors were encountered: