当前位置: 首页 > news >正文

做网站app的工资高吗安阳做网站电话

做网站app的工资高吗,安阳做网站电话,惠州seo博客,为某网站做一则广告语文章目录 Redis 参考文档配置项import 和 bury使用分布是缓存 redis.Cache接口定义使用示例 使用分布式锁 redis.Locker接口定义使用示例 操作Key#xff0c;使用 redis.Key接口定义 使用 Provider 注入 redis 接口使用示例 直接使用redis连接池接口定义使用示例 Redis 参考文… 文章目录 Redis 参考文档配置项import 和 bury使用分布是缓存 redis.Cache接口定义使用示例 使用分布式锁 redis.Locker接口定义使用示例 操作Key使用 redis.Key接口定义 使用 Provider 注入 redis 接口使用示例 直接使用redis连接池接口定义使用示例 Redis 参考文档 本文件介绍如何利用Gone内置模块操作redis包括使用分布式缓存、分布式锁、操作键值、操作Hash等内容是对Gone框架介绍18 - redis 分布式缓存 和 分布式锁 的补充和完善。 已经收录到官方文档https://goner.fun/zh/references/redis.html 配置项 redis.max-idle最大空闲链接数不配置默认为2redis.max-active最大活跃链接数不配置默认为10redis.db使用的db不配置默认为0redis.cache.prefixkey前缀如果设置了对redis的增删改查都会拼接该前缀拼接方式KaTeX parse error: Expected EOF, got # at position 9: {prefix}#̲{key}默认为空 import 和 bury import import github.com/gone-io/gone/goner/redisbury //使用 goner.RedisPriest 函数将 redis 相关的Goner 埋葬到 Cemetery 中 _ goner.RedisPriest(cemetery)使用分布是缓存 redis.Cache 接口定义 type Cache interface {//设置缓存Set的别名Put(key string, value any, ttl ...time.Duration) error//设置缓存Set(key string, value any, ttl ...time.Duration) error//获取缓存Get(key string, value any) error//删除缓存Remove(key string) (err error)//根据模式获取缓存的keyKeys(pattern string) ([]string, error)//获取当前Cache使用的前缀Prefix() string }使用示例 type redisUser struct {gone.Flagcache redis.Cache gone:gone-redis-cache }func (r *redisUser) UseCache() {key : gone-addressvalue : https://github.com/gone-io/gone//设置缓存err : r.cache.Put(key, //第一个参数为 缓存的key类型为 stringvalue, // 第二参数为 需要缓存的值类型为any可以是任意类型传入的值会被编码为 []byte 发往redis10*time.Second, // 第三个参数为 过期时间类型为 time.Duration;省略表示不设置过期时间)if err ! nil {fmt.Printf(err:%v, err)return}//获取缓存var getValue stringerr r.cache.Get(key, //第一个参数为 缓存的key类型为 stringgetValue, //第二参数为指针接收获取缓存的值类型为any可以是任意类型从redis获取的值会被解码为传入的指针类型)if err ! nil {fmt.Printf(err:%v, err)return}fmt.Printf(getValue:%v, getValue) }使用分布式锁 redis.Locker 接口定义 // Locker redis 分布式缓存 type Locker interface {//TryLock 尝试将key锁定一段时间成功返回一个解锁函数失败返回错误TryLock(key string, ttl time.Duration) (unlock Unlock, err error)//LockAndDo 尝试获取锁并执行fn函数函数未执行完自动续期函数执行完后自动释放锁LockAndDo(key string, fn func(), lockTime, checkPeriod time.Duration) (err error) }使用示例 type redisUser struct {gone.Flaglocker redis.Locker gone:gone-redis-locker }func (r *redisUser) UseLock() {lockKey : gone-lock-key//尝试获取锁 并 锁定一段时间//返回的第一个参数为一个解锁的函数unlock, err : r.locker.TryLock(lockKey, //第一个参数为 锁的key类型为 string10*time.Second, //第二参数为 锁的过期时间类型为 time.Duration)if err ! nil {fmt.Printf(err:%v, err)return}//操作完后需要解锁defer unlock()//获取锁成功后可以进行业务操作//todo }func (r *redisUser) LockFunc() {lockKey : gone-lock-keyerr : r.locker.LockAndDo(lockKey, //第一个参数为 锁的key类型为 stringfunc() { //第二个参数为 需要执行的函数类型为 func()代表一个操作//获取锁成功后可以进行业务操作//todoprintln(do some options)},100*time.Second, //第三个参数为 锁的过期时间类型为 time.Duration;第一次加锁和后续锁续期都将使用该值5*time.Second, //第四个参数为 锁续期的间隔时间类型为 time.Duration;周期性检查所是否将过期如果在下个周期内会过期则对锁续期)if err ! nil {fmt.Printf(err:%v, err)} }操作Key使用 redis.Key 接口定义 type Key interface {//Expire 给key设置一段时间后过期Expire(key string, ttl time.Duration) error//ExpireAt 设置key在某个时间点过期ExpireAt(key string, time time.Time) error//Ttl 获取key的过期时间Ttl(key string) (time.Duration, error)//Del 删除一个keyDel(key string) (err error)//Incr 使key自增一个量Incr(field string, increment int64) (int64, error)//Keys 根据模式获取缓存的keyKeys(pattern string) ([]string, error)//Prefix 获取redis配置的key前缀Prefix() string }使用 Provider 注入 redis 接口 通过标签 gone:gone-redis-provider,${key}使用redis Provider 创建一个接口给注入属性。支持注入的接口包括前面的redis.Cache、redis.Locker、redis.Key另外还支持注入 redis.Hash接口用于操作redis hash。 Hash接口定义 type Hash interface {//设置hash字段Set(field string, v interface{}) (err error)//获取hash字段Get(field string, v interface{}) error//删除hash字段Del(field string) error//扫描hash字段Scan(func(field string, v []byte)) error//hash字段自增Incr(field string, increment int64) (int64, error) }使用示例 使用 Provider 创建一个redis.Cache接口该缓存接口的前缀将使用配置中的前缀拼接${key}得到新的前缀可以用于有按模块隔离的场景。 如果配置了redis.cache.prefixmember那么下面注入的redis.Cache接口将使用的前缀为member#points执行操作r.redis.Set(use-110, value)操作保存到redis中的key为member#points#use-110。 type redisUser struct {gone.Flagredis redis.Cache gone:gone-redis-provider,points }func (r *redisUser) UseProvidedCache() {r.redis.Set(use-110, value) }redis.Locker 和 redis.Key 接口的注入 与 redis.Cache 接口类似。 从配置文件中读取一个值作为前缀来拼接 如果配置了redis.cache.prefixorder 和 app.order.sell.redis-prefixsell下面注入的接口将使用的前缀为order#sell执行操作r.redis.Set(use-110, value)操作保存到redis中的key为order#sell#use-110。 type redisUser struct {gone.Flagredis redis.Cache gone:gone-redis-provider,configapp.order.sell.redis-prefix //读取配置中的 app.order.sell.redis-prefix 的值用于创建 redis.Cache }func (r *redisUser) UseProvidedCache() {r.redis.Set(use-110, value) }redis.Locker 和 redis.Key 接口的注入 与 redis.Cache 接口类似。 使用 redis.Hash 接口 在注入redis.Hash接口时key不在为前缀而就是当前redis要操作的key。 如果配置了redis.cache.prefixuser下面代码中的r.hash.Set(use-110, value)将会被翻译为指令HSET user-set use-110 value。 type redisUser struct {gone.Flaghash redis.Hash gone:gone-redis-provider,user-set } func (r *redisUser) UseHash() {r.hash.Set(use-110, value) }直接使用redis连接池 接口定义 type Pool interface {//获取链接Get() Conn//释放链接Close(conn redis.Conn) }使用示例 type redisUser struct {gone.Flagpool redis.Pool gone:gone-redis-pool }func (r *redisUser) UsePool() {conn : r.pool.Get()defer r.pool.Close(conn)//执行redis命令_, err : conn.Do(SET, key, value) }
http://www.hkea.cn/news/14459768/

相关文章:

  • 做网站导航怎么调整大小北京展示型网站
  • 北京手机网站搭建费用网站开发案例教程
  • 浅谈京东企业的电子商务网站建设物联网云平台
  • 微软 网站开发最好的网站建设组织
  • 公司做网站需准备资料个人网页html模板
  • 江苏省建设考试培训网站大中小网站的区分
  • 配色设计网站推荐虚拟空间网站ftp如何差异化同步
  • 制作外贸型网站合肥网站建设解决方案
  • dw6做网站海口网站建设方案推广
  • 网站风格有哪些企业黄页信息查询网
  • asp 该网站正在进行维护.WordPress文章ajax
  • 网站开发 界面wordpress能批量上传图片么
  • html网站建设心得体会廊坊营销型网站建设
  • 企业网站建设的基本标准网站注册地址查询
  • 西宁网站建设电话线上营销的好处
  • 网站制作公司大型军事新闻最新消息军事新闻
  • 大理旅游网站建设代运营公司排行榜
  • 网站建设书本信息技术外包
  • 太原模板建站平台书香气的域名做网站
  • 半路出家去学计算机网站开发室内设计效果图一套
  • 如何免费注册自己的网站wordpress 删除rss
  • 网站推广怎么推想建一个网站
  • 郑州营销网站托管公司哪家好中山建网站多少钱
  • 企业网站建设设计公司小程序登录入口qq浏览器
  • 建网站赚钱方法云服务器做的网站需要备案
  • 网站tag页面如何做网页设计与制作教程刘瑞新
  • 河北衡水建设网站公司电话南昌seo排名方案
  • 网站推广工具有啥网站建设管理系统
  • 郑州企业网站优化服务哪家好电商网站设计案例
  • html5作业 建设网站成都管控政策最新消息