Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Go 语言社区】关于Golang 数据缓存到redis内存数据库遇到的问题

【Go 语言社区】关于Golang 数据缓存到redis内存数据库遇到的问题

作者头像
李海彬
发布于 2018-03-20 02:52:02
发布于 2018-03-20 02:52:02
1.4K00
代码可运行
举报
文章被收录于专栏:Golang语言社区Golang语言社区
运行总次数:0
代码可运行

首先, 简单的说下,redis 在项目中的一个作用;针对与大数据在内存操作数据和子数据库操作数据可能都不是一个数量级的,redis在项目中主要是起到配置数据的作用,说白了就是将数据库的不同的表整合到一个数据块,方便程序快速读取。例如APP开发,设计到文章属性的相关的多数都会存在一个内存数据块中,而在数据库则是不同的表。

假如有个工作做排行,我们完全可以用redis自己带的函数经行数据的排行;可以从小到大也可以从大到小。涉及到的API 如下:

保存到内存数据库:这个我做的APP的评论功能

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 用户产生一条问答的评论
// hkey : 为 问答评论产生的时间戳: Instertime
func Redis_Write_AnswerCommentInfoData(strkey_Instertime string, stAnswerCommentInfo Global_Define.StCommentInfo) bool {
    Log_Eio.Log("Entry Redis_Write_AnswerCommentInfoData")
    Log_Eio.Fmt("Entry Redis_Write_AnswerCommentInfoData")
    // 数据的存储
    itimekey, _ := strconv.Atoi(stAnswerCommentInfo.CommentTime)
    bytetmp, _ := json.Marshal(stAnswerCommentInfo)
    _, error := GRedis_Client.Zadd(AnswerCommentInfoKey, float64(itimekey), bytetmp)
    if error != nil {
        Log_Eio.Fmt("GRedis_Client.Zadd: Set data ", error)
        Log_Eio.Log("GRedis_Client.Zadd: Set data ", error.Error())
        return false
    }
    return true
}

简单的给大家解释下: APP的文章还是评论都是按照最新的时间显示在评论头条或者最新的文章显示在上面;所以我们用时间戳来做排序的标准,因为ZADD函数key是可以重复的。这个大家可以简单的写个DEMO试试。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Golang 语言社区】 剧透社区APP 问答功能模块设计思路及实现
社区APP问答模块,设计思想:主要为了满足用户在发表疑问及遇到的问题的时候可以发表。 1 发表问答模块,需要保存数据库及内存数据库 2 获取问答列表,主要是读取内存数据库的数据。 3 问答列表及评论的分页模式;这个可以用pagenumber或者时间戳获取分页数据;这个如果大家想了解可以微信公众账号获取交流群
李海彬
2018/03/19
8230
Go语言社区 APP --问答模块数据存储流程及代码
注:这个是我们社区APP的问答社区的 数据库保存及数据读取的流程; 流程如下: 保存流程====接到客户端数据保存到数据库--》内存数据库 获取流程====处理客户端请求--》读取内存数据库数据(此时已经和数据库没有关系了,在读取的数据的时候) // 保存数据库,和获取保存的数据库的ID ; 然后保存在内存数据库 数据库保存: // 发表问答社区,保存到数据库 func PlayerAnswerDataSaveDBFun(iAuthor
李海彬
2018/03/19
8640
【Go 语言社区】单点redis 持久化在高并发下存在延迟情况
最近的服务器设计中,我本来打算利用redis的持久化来作为内存的配置数据源,简单的说就是不利用内存儿利用redis 提供的API来作为数据的读和写。代码如下: // 数据的存储 bytetmp, _ := json.Marshal(stPaiHangBang) _, error := GRedis_Client.Zadd(G_PaiHangKey, float64(iPaiMing), bytetmp) if error != nil { Log_Eio.
李海彬
2018/03/20
1.3K0
【Golang 语言社区】 社区APP 红包模块设计思路及实现
社区的APP 还在紧张的开发中,现在剧透APP的部分功能模块; 今天剧透的是 APP的红包模块。 红包设计思路: 1 促进用户的使用,对于积极的用户我们社区是给予了很大的回馈措施,回馈的措施就是大力无限量的红包回馈用户。 2 红包功能,主要包括,注册用户送红包,看文章送红包,回答问答送红包; 3 红包的内容非RMB,主要是一些软性的东西,例如,G币或者G豆,社区论坛的金币;最最优惠的属于送论坛的VIP。 4 剧透重要的是思想,以下代码大家主要是理解思路;代码部分重要的被***替代。 // 红包的
李海彬
2018/03/19
1.2K0
golang实现基于redis和consul的可水平扩展的排行榜服务范例
本文的完整代码见 https://github.com/changjixiong/goNotes/tree/master/redisnote ,https://github.com/changjixiong/goNotes/tree/master/utils 及https://github.com/changjixiong/goNotes/tree/master/reflectinvoke。如果文中没有显示链接说明链接在被转发的时候被干掉了,请搜索找到原文阅读。 概述   排行榜在各种互联网应用中广泛存在。
李海彬
2018/03/27
1.1K0
GoLang 操作 Redis
使用redis首先要部署redis,载个安装包,部署下即可,本文不赘述了。redis官网:https://redis.io/
JulyWhj
2022/06/01
1.1K0
GoLang 操作 Redis
啥?Redis原来还能干这事儿!
数据统计在互联网平台中扮演着至关重要的角色,不仅能够深入分析用户在互联网平台上的行为,包括浏览、点击、搜索、购买等行为数据。通过这些数据企业还可以了解用户的喜好、需求和购买习惯,从而优化产品、服务和营销策略。典型的应用主要就是用户画像构建和用户行为路径分析。
闫同学
2024/07/30
4460
啥?Redis原来还能干这事儿!
【Go 语言 redis内存数据库存储 demo】
package main import ( "fmt" "github.com.Go-Redis/github.com/alphazero/Go-Redis" "log" "strconv" ) const ( a = iota b = iota c1 ) func main() { //var b string //b = "fdsafds"
李海彬
2018/03/19
1.2K0
【Go 语言 redis内存数据库存储 demo】
图文结合!Redis延迟队列golang高效实践
导语 | 本文主要讲述如何使用golang基于Redis实现延迟消息队列组件。希望对有需求的同学有所帮助。 一、背景 业务中经常会有这样的场景: 到期后自动执行指定操作; 查询某个任务是否完成,未完成等待一定时间再次查询; 回调通知,当回调失败时,等待后重试;等等还有其他很多类似的场景。 很多时候我们会直接通过一个本地定时器来帮我们完成这个任务。如果我们的系统是多实例分布式的,本地定时器就会面临很多问题,如:怎么保证重复处理的问题;统一管控的问题等等。面对本地定时器遇到的问题,我们可以使用分布式延迟
腾讯云开发者
2022/06/02
1.7K0
图文结合!Redis延迟队列golang高效实践
Go每日一库之196:go-redis(redis客户端库)
在项目开发中redis的使用也比较频繁,本文介绍了Go语言中go-redis库的基本使用。
luckpunk
2025/01/07
5300
3.Go语言项目操作Redis数据实践
快速了解 Redis 数据库 描述: Redis是一个开源的内存数据库, Redis提供了多种不同类型的数据结构,很多业务场景下的问题都可以很自然地映射到这些数据结构上。除此之外,通过复制、持久化和客户端分片等特性,我们可以很方便地将Redis扩展成一个能够包含数百GB数据、每秒处理上百万次请求的系统。
全栈工程师修炼指南
2022/09/29
1.5K0
写在学习golang一个月后
连接池。由于PHP没有连接池,当高并发时就会有大量的数据库连接直接冲击到MySQL上,最终导致数据库挂掉。虽然Swoole有连接池,但是Swoole只是PHP的一个扩展,之前使用Swoole过程中就踩过很多的坑。经过我们的讨论还是觉得使用Golang更加可控一些。
李海彬
2018/10/08
1.1K0
写在学习golang一个月后
什么是Redis数据库,如何在 CentOS 7 上安装 Redis,看完你就懂了!
Redis ,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis是完全开源免费的,遵守BSD协议。
小明互联网技术分享社区
2023/12/01
2.3K3
什么是Redis数据库,如何在 CentOS 7 上安装 Redis,看完你就懂了!
Redis 实现高效任务队列:异步队列与延迟队列详解
文章链接:https://cloud.tencent.com/developer/article/2464880
南山竹
2024/11/12
3120
Redis 实现高效任务队列:异步队列与延迟队列详解
缓存数据库Redis
Redis基本概念和NOSQL 1. 概念: redis是一款高性能的NOSQL系列的非关系型数据库 1.1.什么是NOSQL NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。 随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点
不愿意做鱼的小鲸鱼
2022/09/24
2.8K0
缓存数据库Redis
KV型内存数据库Redis
Redis是开源的高性能内存Key-Value数据库, 可以提供事务和持久化支持, 并提供了TTL(time to life)服务。
星哥玩云
2022/08/18
2.6K0
缓存之Redis了解及使用
redis是一种支持Key-Value等多种数据结构的存储系统。可用于缓存,事件发布或订阅,高速队列等场景。该数据库使用ANSI C语言编写,支持网络,提供字符串,哈希,列表,队列,集合结构直接存取,基于内存,可持久化。
sucl
2019/08/07
5470
缓存之Redis了解及使用
golang重构博客统计服务
作为一个后端开发,在docker,etcd,k8s等新技术不断涌现的今天,其背后的功臣golang在语言排行榜上持续走高,因此楼主也就开了这次使用golang自己开发的基础功能的二次装逼之旅。
haifeiWu
2018/09/11
6030
2.Redis数据库基础数据类型介绍与使用
描述: Redis常见五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(Sorted set 有序集合)。
全栈工程师修炼指南
2022/09/28
8480
2.Redis数据库基础数据类型介绍与使用
【Golang】快速复习指南QuickReview(十一)——数据库访问(MySql为例)
俗话说卖钱不卖钱,摊摊儿要扯圆,甭管怎样,我们先建立一个标准的golang项目,来访问数据库。
DDGarfield
2022/06/23
7020
推荐阅读
相关推荐
【Golang 语言社区】 剧透社区APP 问答功能模块设计思路及实现
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验