redis缓存存储Session原理机制

 更新时间:2021年11月18日 15:53:48   作者:程序媛张小妍  
这篇文章主要为大家介绍了redis缓存存储Session原理机制详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

基于 Redis 存储 Session

如果我们想将 session 数据保存到 redis 中,只要将 session 的存储引擎改成 redis 即可。

使用 redis 作为存储引擎的例子:

首先安装 redis 存储引擎的包

go get github.com/gin-contrib/sessions/redis
// 初始化基于 redis 的存储引擎
// 参数说明: 
// 第 1 个参数 - redis 最大的空闲连接数 
// 第 2 个参数 - 数通信协议 tcp 或者 udp 
// 第 3 个参数 - redis 地址, 格式,host:port 
// 第 4 个参数 - redis 密码
// 第 5 个参数 - session 加密密钥
	store, _ := redis.NewStore(10, "tcp", "localhost:6379", "", []byte("secret"))
	r.Use(sessions.Sessions("mysession", store))

设置session过期时间

		//配置session的过期时间
		session.Options(sessions.Options{MaxAge:3600*6 })//6小时=60*60*6

分布式获取Session:(redis)

查看当前的redis值:
keys *
set key vlaue 设置键值对
get key 查看值(加密)
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() 
	//配置session的中间件
 	store, _ := redis.NewStore(10, "tcp", "localhost:6379", "", []byte("secret"))
	r.Use(sessions.Sessions("mysession", store)) 
	//initMiddleware:配置路由中间件
	r.GET("/", func(c *gin.Context) {
		//设置sessions
		session := sessions.Default(c)
		//配置session的过期时间
		session.Options(sessions.Options{MaxAge:3600*6 })//6小时=60*60*6
		session.Set("username", "成强")
		//保存sessions:给其他页面使用(必须调用)
		session.Save() 
		c.String(200, "gin首页")
	})
	r.GET("/news", func(c *gin.Context) {
		//获取sessions
		session := sessions.Default(c)
		username := session.Get("username") 
		c.String(200, "username=%v", username)
	})
}

 以上就是redis缓存存储Session原理机制的详细内容,更多关于redis存储Session的资料请关注脚本之家其它相关文章!

相关文章

  • Redis 中的布隆过滤器的实现

    Redis 中的布隆过滤器的实现

    这篇文章主要介绍了Redis 中的布隆过滤器的实现,详细的介绍了什么是布隆过滤器以及如何实现,非常具有实用价值,需要的朋友可以参考下
    2018-10-10
  • 如何打造redis缓存组件

    如何打造redis缓存组件

    文章介绍了如何使用热插拔AOP、反射、Redis自定义注解和SpringEL表达式来打造一个优雅的Redis缓存组件,通过这种方式,可以重构和简化缓存代码,并提供了Redis配置和自定义注解的详细说明,文章还包含了AOP测试的总结,并鼓励读者参考和支持
    2024-12-12
  • 关于Redis最常见的十道面试题总结大全

    关于Redis最常见的十道面试题总结大全

    Redis作为一个高性能的内存数据存储系统,具有快速读写、持久性、数据结构多样性等特点,广泛应用于各种应用场景,这篇文章主要给大家介绍了关于Redis最常见的十道面试题总结的相关资料,需要的朋友可以参考下
    2024-07-07
  • Redis内存碎片产生原因及Pipeline管道原理解析

    Redis内存碎片产生原因及Pipeline管道原理解析

    这篇文章主要为大家介绍了Redis内存碎片产生原因及Pipeline管道原理解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • redis replication环形缓冲区算法详解

    redis replication环形缓冲区算法详解

    这篇文章主要介绍了redis replication环形缓冲区算法的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • 通过实例解析布隆过滤器工作原理及实例

    通过实例解析布隆过滤器工作原理及实例

    这篇文章主要介绍了通过实例解析布隆过滤器工作原理及实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 使用Redis实现秒杀功能的简单方法

    使用Redis实现秒杀功能的简单方法

    这篇文章主要给大家介绍了关于使用Redis实现秒杀功能的简单方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • Redis整合MySQL主从集群的示例代码

    Redis整合MySQL主从集群的示例代码

    本文主要介绍了Redis整合MySQL主从集群的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Redis基于Bitmap实现用户签到功能

    Redis基于Bitmap实现用户签到功能

    很多应用上都有用户签到的功能,尤其是配合积分系统一起使用。本文主要介绍了Redis基于Bitmap实现用户签到功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Redis字符串原理的深入理解

    Redis字符串原理的深入理解

    这篇文章主要给大家介绍了关于Redis字符串原理的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Redis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06

最新评论