博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
go语言实战教程:Redis实战项目应用
阅读量:4979 次
发布时间:2019-06-12

本文共 3108 字,大约阅读时间需要 10 分钟。

项目Redis配置

在实战项目中使用Redis功能,首先需要进行Redis配置。本实战项目中,关与Redis的配置项包含:连接类型地址端口公共前缀。以上配置项被定义包含在Iris框架的redis包中的Config结构体中,Config定义如下:

type Config struct {
// Network "tcp" Network string // Addr "127.0.0.1:6379" Addr string // Password string .If no password then no 'AUTH'. Default "" Password string // If Database is empty "" then no 'SELECT'. Default "" Database string // MaxIdle 0 no limit MaxIdle int // MaxActive 0 no limit MaxActive int // IdleTimeout time.Duration(5) * time.Minute IdleTimeout time.Duration // Prefix "myprefix-for-this-website". Default "" Prefix string }
  • Network: 连接类型。TCP

  • Addr: 即将连接的Redis服务主机IP。本实战项目的Redis服务部署在本机,因此主机ip为127.0.0.1。Redis服务默认端口为6379。因此,Addr在本实例项目中的配置值为127.0.0.1:6379。

  • Password: 登陆Redis的密码。默认配置为空。

  • Prefix:为要保存的所有的内容设置公共的前缀。默认设置为空。

  • IdleTimeout:设置Redis中的生效时长。这里我们设置time.Duration(24) * time.Hour。在实际的开发过程中,开发者可以根据自己的需求设定Redis的生效时长。

Redis在配置文件中的配置情况如下:

{
"app_name": "CmsProject", "port": "8080", "static_path": "/manage/static", "database": {
  "drive": "mysql",   "port": "3306",   "user": "root",   "pwd": "271400",   "database": "qfCms" }, "redis": {
  "network": "tcp",   "addr": "127.0.0.1",   "port": "6379",   "prefix": "" }, "mode": "dev" }

Redis连接对象实例化

我们通过读取配置文件完成配置内容的读取,利用Redis配置信息实例化Redis对象,Redis实例化如下:

​ var once sync.Once ​ /**  * 返回Redis实例  */ func NewRedis() *redis.Database {
​ var database *redis.Database ​ once.Do(func() {
//项目配置 cmsConfig := config.InitConfig() rd := cmsConfig.Redis database = redis.New(service.Config{ Network: rd.NetWork, Addr: rd.Addr + ":" + rd.Port, IdleTimeout: time.Duration(24) * time.Hour, Prefix: rd.Prefix, }) }) return database }

Redis的实例化使用到了单例方式实现。

 

将Session存储方式设置为Redis

redis := datasource.NewRedis() //设置session的同步位置为redis sessManager.UseDatabase(redis)

实战项目中Redis的操作与实现

  • Redis缓存管理员统计功能

    adminStatis := sc.Session.Get(ADMINMODULE + date)     if adminStatis != nil {
    adminStatis = adminStatis.(int64) return mvc.Response{
    Object: map[string]interface{}{ "status": utils.RECODE_OK, "count": adminStatis, }, } } else { result = sc.Service.GetAdminDailyCount(date) sc.Session.Set(ADMINMODULE, result) }
  • Redis缓存订单统计功能

    orderStatis := sc.Session.Get(ORDERMODULE + date) ​     if orderStatis != nil {
    orderStatis = orderStatis.(int64) return mvc.Response{
    Object: map[string]interface{}{ "status": utils.RECODE_OK, "count": orderStatis, }, } } else { result = sc.Service.GetOrderDailyCount(date) sc.Session.Set(ORDERMODULE+date, result) }
  • Redis缓存用户统计功能

    userResult := sc.Session.Get(USERMODULE + date)     if userResult != nil {
    result = userResult.(int64) return mvc.Response{
    Object: map[string]interface{}{ "status": utils.RECODE_OK, "count": userResult, }, } } else { iris.New().Logger().Error(date) //时间 result = sc.Service.GetUserDailyCount(date) //设置缓存 sc.Session.Set(USERMODULE+date, result) }

查看Redis存储效果

  • 开启Redis服务 在Mac下,启动redis服务使用如下命令:redis

  • 开启Redis-cli客户端 在MacOS系统下,启动redis-cli工具的命令:redis-cli 如上我们可以通过keys命令来查看我们存储的所有的内容

  • get key读取具体信息 在查询所对应的key的redis存储内容值。

  •  

 

转载于:https://www.cnblogs.com/qfDavie/p/10730891.html

你可能感兴趣的文章
Git一分钟系列--快速安装git客户端
查看>>
纵越6省1市-重新启动
查看>>
hive安装以及hive on spark
查看>>
jz1074 【基础】寻找2的幂
查看>>
Wannafly模拟赛5 A 思维 D 暴力
查看>>
【Linux开发】CCS远程调试ARM,AM4378
查看>>
Linux之ssh服务介绍
查看>>
排序:冒泡排序
查看>>
Java中instanceof关键字的用法总结
查看>>
引用类型-Function类型
查看>>
(转)Android 仿订单出票效果 (附DEMO)
查看>>
数据库多张表导出到excel
查看>>
微信小程序去除button默认样式
查看>>
Where does Visual Studio look for C++ Header files?
查看>>
Java打包可执行jar包 包含外部文件
查看>>
Windows Phone开发(37):动画之ColorAnimation
查看>>
js中escape,encodeURI,encodeURIComponent 区别(转)
查看>>
sass学习笔记-安装
查看>>
Flask (二) cookie 与 session 模型
查看>>
修改添加网址的教程文件名
查看>>