mirror of
				https://github.com/gofiber/storage.git
				synced 2025-10-31 19:52:45 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			141 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| id: postgres
 | |
| title: Postgres
 | |
| ---
 | |
| 
 | |
| 
 | |
| [](https://gofiber.io/discord)
 | |
| 
 | |
| 
 | |
| A Postgres storage driver using [jackc/pgx](https://github.com/jackc/pgx).
 | |
| 
 | |
| ### Table of Contents
 | |
| 
 | |
| - [Signatures](#signatures)
 | |
| - [Installation](#installation)
 | |
| - [Examples](#examples)
 | |
| - [Config](#config)
 | |
| - [Default Config](#default-config)
 | |
| 
 | |
| ### Signatures
 | |
| 
 | |
| ```go
 | |
| func New(config ...Config) Storage
 | |
| func (s *Storage) Get(key string) ([]byte, error)
 | |
| func (s *Storage) GetWithContext(ctx context.Context, key string) ([]byte, error)
 | |
| func (s *Storage) Set(key string, val []byte, exp time.Duration) error
 | |
| func (s *Storage) SetWithContext(ctx context.Context, key string, val []byte, exp time.Duration) error
 | |
| func (s *Storage) Delete(key string) error
 | |
| func (s *Storage) DeleteWithContext(ctx context.Context, key string) error
 | |
| func (s *Storage) Reset() error
 | |
| func (s *Storage) ResetWithContext(ctx context.Context) error
 | |
| func (s *Storage) Close() error
 | |
| func (s *Storage) Conn() *pgxpool.Pool
 | |
| ```
 | |
| 
 | |
| ### Installation
 | |
| Postgres is tested on the 2 last [Go versions](https://golang.org/dl/) with support for modules. So make sure to initialize one first if you didn't do that yet:
 | |
| ```bash
 | |
| go mod init github.com/<user>/<repo>
 | |
| ```
 | |
| And then install the postgres implementation:
 | |
| ```bash
 | |
| go get github.com/gofiber/storage/postgres/v3
 | |
| ```
 | |
| 
 | |
| ### Examples
 | |
| Import the storage package.
 | |
| ```go
 | |
| import "github.com/gofiber/storage/postgres/v3"
 | |
| ```
 | |
| 
 | |
| You can use the following possibilities to create a storage:
 | |
| ```go
 | |
| // Initialize default config
 | |
| store := postgres.New()
 | |
| 
 | |
| // Initialize custom config
 | |
| store := postgres.New(postgres.Config{
 | |
| 	DB:              dbPool,
 | |
| 	Table:           "fiber_storage",
 | |
| 	Reset:           false,
 | |
| 	GCInterval:      10 * time.Second,
 | |
| })
 | |
| ```
 | |
| 
 | |
| ### Config
 | |
| ```go
 | |
| // Config defines the config for storage.
 | |
| type Config struct {
 | |
| 	// DB pgxpool.Pool object will override connection uri and other connection fields
 | |
| 	//
 | |
| 	// Optional. Default is nil
 | |
| 	DB *pgxpool.Pool
 | |
| 
 | |
| 	// Connection string to use for DB. Will override all other authentication values if used
 | |
| 	//
 | |
| 	// Optional. Default is ""
 | |
| 	ConnectionURI string
 | |
| 
 | |
| 	// Host name where the DB is hosted
 | |
| 	//
 | |
| 	// Optional. Default is "127.0.0.1"
 | |
| 	Host string
 | |
| 
 | |
| 	// Port where the DB is listening on
 | |
| 	//
 | |
| 	// Optional. Default is 5432
 | |
| 	Port int
 | |
| 
 | |
| 	// Server username
 | |
| 	//
 | |
| 	// Optional. Default is ""
 | |
| 	Username string
 | |
| 
 | |
| 	// Server password
 | |
| 	//
 | |
| 	// Optional. Default is ""
 | |
| 	Password string
 | |
| 
 | |
| 	// Database name
 | |
| 	//
 | |
| 	// Optional. Default is "fiber"
 | |
| 	Database string
 | |
| 
 | |
| 	// Table name
 | |
| 	//
 | |
| 	// Optional. Default is "fiber_storage"
 | |
| 	Table string
 | |
| 
 | |
| 	// The SSL mode for the connection
 | |
| 	//
 | |
| 	// Optional. Default is "disable"
 | |
| 	SSLMode string
 | |
| 
 | |
| 	// Reset clears any existing keys in existing Table
 | |
| 	//
 | |
| 	// Optional. Default is false
 | |
| 	Reset bool
 | |
| 
 | |
| 	// Time before deleting expired keys
 | |
| 	//
 | |
| 	// Optional. Default is 10 * time.Second
 | |
| 	GCInterval time.Duration
 | |
| }
 | |
| ```
 | |
| 
 | |
| ### Default Config
 | |
| ```go
 | |
| // ConfigDefault is the default config
 | |
| var ConfigDefault = Config{
 | |
| 	ConnectionURI: "",
 | |
| 	Host:          "127.0.0.1",
 | |
| 	Port:          5432,
 | |
| 	Database:      "fiber",
 | |
| 	Table:         "fiber_storage",
 | |
| 	SSLMode:       "disable",
 | |
| 	Reset:         false,
 | |
| 	GCInterval:    10 * time.Second,
 | |
| }
 | |
| ```
 | 
