go redigo的简单操作
golang操作redis主要有两个库,go-redis和redigo。两者操作都比较简单,区别上redigo更像一个client执行各种操作都是通过Do函数去做的,redis-go对函数的封装更好,相比之下redigo操作redis显得有些繁琐。但是官方更推荐redigo,所以项目中我使用了redigo。
1.连接redis
- package redisclient
- import (
- "fmt"
- redigo "github.com/garyburd/redigo/redis"
- )
- var pool *redigo.Pool
- func init() {
- redis_host := "127.0.0.1"
- redis_port := 6379
- pool_size := 20
- pool = redigo.NewPool(func() (redigo.Conn, error) {
- c, err := redigo.Dial("tcp", fmt.Sprintf("%s:%d", redis_host, redis_port))
- if err != nil {
- return nil, err
- }
- return c, nil
- }, pool_size)
- }
- func Get() redigo.Conn {
- return pool.Get()
- }
之后我们调用redisclient包中的.Get()就可以生成一个redis连接池对象来操作redis
2.操作redis
- package main
- import (
- "fmt"
- "redisclient"
- "github.com/garyburd/redigo/redis"
- )
- func main() {
- c := redisclient.Get()
- //记得销毁本次链连接
- defer c.Close()
- //写入数据
- _, err := c.Do("SET", "go_key", "redigo")
- if err != nil {
- fmt.Println("err while setting:", err)
- }
- //判断key是否存在
- is_key_exit, err := redis.Bool(c.Do("EXISTS", "go_key"))
- if err != nil {
- fmt.Println("err while checking keys:", err)
- } else {
- fmt.Println(is_key_exit)
- }
- //获取value并转成字符串
- account_balance, err := redis.String(c.Do("GET", "go_key"))
- if err != nil {
- fmt.Println("err while getting:", err)
- } else {
- fmt.Println(account_balance)
- }
- //删除key
- _, err = c.Do("DEL", "go_key")
- if err != nil {
- fmt.Println("err while deleting:", err)
- }
- //设置key过期时间
- _, err = c.Do("SET", "mykey", "superWang", "EX", "5")
- if err != nil {
- fmt.Println("err while setting:", err)
- }
- //对已有key设置5s过期时间
- n, err := c.Do("EXPIRE", "go_key", 5)
- if err != nil {
- fmt.Println("err while expiring:", err)
- } else if n != int64(1) {
- fmt.Println("failed")
- }
- }
希望对大家有所帮助~
go redigo的简单操作的更多相关文章
- x01.MagicCube: 简单操作
看最强大脑,发现魔方还是比较好玩的,便买了一个,对照七步还原法,居然也能成功还原. 为什么不写一个魔方程序呢?在网上找了找,略作修改,进行简单操作,还是不错的,其操作代码如下: protected o ...
- js简单操作Cookie
贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...
- GitHub学习心得之 简单操作
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 前言 本文对Github的基本操作进行了总结, 主要基于以下文章: http://gitre ...
- Linq对XML的简单操作
前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...
- Linux 中 Vi 编辑器的简单操作
Linux 中 Vi 编辑器的简单操作 Vi 编辑器一共有3种模式:命名模式(默认),尾行模式,编辑模式.3种模式彼此需要切换. 一.进入 Vi 编辑器的的命令 vi filename //打开或新 ...
- python(pymysql)之mysql简单操作
一.mysql简单介绍 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库 ...
- ZooKeeper系列3:ZooKeeper命令、命令行工具及简单操作
问题导读1.ZooKeeper包含哪些常用命令?2.通过什么命令可以列出服务器 watch 的详细信息?3.ZooKeeper包含哪些操作?4.ZooKeeper如何创建zookeeper? 常用命令 ...
- ORACLE的安装与网页版创建表空间的简单操作以及PLsql的简单操作
1.oracle的安装: 安装简单易学,在这里不做解释.下载看装包后耐心等待,注意安装目录不要有中文字符,尽量按照指定目录进行安装.安装完成后会占用有大约5g的内存. 如果要卸载oracle,需要用其 ...
- C#反射技术的简单操作(读取和设置类的属性)
public class A { public int Property1 { get; set; } } static void Main(){ A aa = new A(); Type type ...
随机推荐
- MiseringThread.java 解析页面线程
MiseringThread.java 解析页面线程 http://injavawetrust.iteye.com package com.iteye.injavawetrust.miner; imp ...
- 大多数时候是软件的Bug,但是... 有时候的确是硬件的问题!
在我们性能最好的服务器中,有一台是从之前的64位测试项目中遗留下来的.那台机器配有皓龙250双核处理器,内存有8 GB.服役了一年之后,那种配置仍然是相当不错的.它还有贴心的升级方案可选:它的泰安Th ...
- Swift基础之UITableView(之前写的知识点都是最新的2.2版本样式,欢迎大家参考,可以相互交流)
//这里只是列举了经常使用的UITableView的属性和方法,其他的都可以类似使用,注意用法即可 //设置全局变量UITableView var myTableView = UITa ...
- 轻量级网络库libevent概况
Libevent is a library for writing fast portable nonblocking IO. libevent是一个为编写快速可移植的非阻塞IO程序而设计的. lib ...
- 地产IT人福利:帆软地产BI解决方案全解析
解决方案下载地址 帆软大型地产集团项目解决方案 下载地址:http://pan.baidu.com/s/1pJGeqKF帆软地产BI解决方案之KPI考核系统 下载地址:http://pan.baidu ...
- Cocoa公历和中国农历直接的转换
看过某书上面的做法是先生成一个公历的calendar,使用的是: NSCalendar *cal = [NSCalendar currentCalendar]; 然后用它生成一个NSDateCompo ...
- LeetCode之旅(18)-Happy Number
题目 Write an algorithm to determine if a number is "happy". A happy number is a number defi ...
- LeetCode(36)- Implement Stack using Queues
题目: Implement the following operations of a stack using queues. push(x) -- Push element x onto stack ...
- asp.net core中写入自定义中间件
首先要明确什么是中间件?微软官方解释:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware/?tabs=aspnet ...
- java学习日记-基础-列出2~100内的素数
素数的概念:一个整数如果只能整除1和它本身,那么这个整数就是一个素数 方法一:素数是除去能被2整除.3整除.5整除.7整除的整数,但包含2,3,5,7 public class Sushu { pub ...