1. ホーム
  2. データベース
  3. レディス

redisキャッシュストレージのセッション原理機構

2022-01-20 23:02:11

Redisをベースにしたセッションの保存

セッションデータをredisに保存したい場合は、セッションストレージのエンジンをredisに変更すればよいだけです。

ストレージエンジンとしてredisを使用した例。

まず、redis storage engine パッケージをインストールします。

go get github.com/gin-contrib/sessions/redis


// Initialize the redis-based storage engine
// Parameter description. 
// 1st parameter - the maximum number of free redis connections 
// 2nd parameter - number of communication protocols tcp or udp 
// 3rd parameter - redis address, format, host:port 
// 4th parameter - redis password
// 5th parameter - session encryption key
	store, _ := redis.NewStore(10, "tcp", "localhost:6379", "", []byte("secret"))
	r.Use(sessions.Sessions("mysession", store))

セッションの有効期限を設定する

		// Configure the session expiration time
		session.Options(sessions.Options{MaxAge:3600*6 })//6 hours = 60*60*6

分散取得セッション:(redis)

To view the current redis value.
keys *
set key vlaue set key-value pairs
get key View the value (encrypted)

package main
import (
	"github.com/gin-contrib/sessions"
	"github.com/gin-contrib/sessions/cookie"
	"github.com/gin-contrib/sessions/redis"
	"github.com/gin-gonic/gin"
)
func main() {
	r := gin.Default() 
	// Configure the middleware for the session
 	store, _ := redis.NewStore(10, "tcp", "localhost:6379", "", []byte("secret"))
	r.Use(sessions.Sessions("mysession", store)) 
	//initMiddleware:Configure the routing middleware
	r.GET("/", func(c *gin.Context) {
		//set sessions
		session := sessions.Default(c)
		//configure the session expiration time
		Session.Options(sessions.Options{MaxAge:3600*6 })//6 hours = 60*60*6
		session.Set("username", "ChengQiang")
		//Save sessions: for other pages (must be called)
		session.Save() 
		c.String(200, "gin home")
	})
	r.GET("/news", func(c *gin.Context) {
		//get sessions
		session := sessions.Default(c)
		username := session.Get("username") 
		c.String(200, "username=%v", username)
	})
}

 上記はredisキャッシュストレージSessionの原理メカニズムの詳細であり、redisストレージSessionの詳細については、スクリプトハウスの他の関連記事に注意を払うしてください