Git Product home page Git Product logo

Comments (1)

chanuei avatar chanuei commented on June 10, 2024

今天测试了一个您的这个cache,对于主键查询的,应该是OK的了。思路不错。

小小的建议一下,cache包,可以出个New,其返回是*gorm.DB,如下所示

func New(c *Conf) (db *gorm.DB, err error) {
	gormCfg := &gorm.Config{}

	dsn := c.DB.Dsn
	switch strings.ToLower(c.DB.Type) {
	// supported: MySQL, PostgreSQL, SQLite, SQL Server  TiDB
	case "mysql", "mariadb":
		db, err = gorm.Open(mysql.Open(dsn), gormCfg)
	case "postgre", "postgres", "postgresql":
		db, err = gorm.Open(postgres.Open(dsn), gormCfg)
	case "sqlite":
		db, err = gorm.Open(sqlite.Open(dsn), gormCfg)
	case "sqlserver":
		db, err = gorm.Open(sqlserver.Open(dsn), gormCfg)
	default:
		err = errors.New("gormredis - NewWithRedis: unsupported db type found: " + c.DB.Type)
		return nil, err
	}

	rds := Store.New(c.Redis)

	gormPlugin := &cache{
		Store:     rds,
		prefix:     c.RedisPrefix,
		Serializer: &DefaultSerializer{},
	}

	err = db.Use(gormPlugin)
	if err != nil {
		return nil, err
	}
	return db, nil
}

这样,就可以作为一个可以直接new之后就使用的包了,而不是需要再在调用程序里面处理一堆。

如果您觉得这个方案可以的话,我提个pr。

from gorm-cache.

Related Issues (4)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.