安装redis
下载、解压、编译Redis
$ wget http://download.redis.io/releases/redis-6.0.6.tar.gz $ tar xzf redis-6.0.6.tar.gz $ cd redis-6.0.6 $ make
我make的时候出现了这样的问题
方法1:我的Linux版本6.8x64
依次执行以下命令解决
cd /home
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
yum install XXX
方法2:
1、安装gcc套装(如果是新系统gcc通常安装不全面)
yum install cpp
yum install binutils
yum install glibc
yum install glibc-kernheaders
yum install glibc-common
yum install glibc-devel
yum install gcc
yum install make
2、升级gcc
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
然后继续执行make 好用了!!! ----有时候需要切换到root用户,才有权限
$ su //切换到root用户
进入到解压后的 src
目录,通过如下命令启动Redis:
$ src/redis-server
成功啦!!!嘿嘿嘿
打开另一个窗口-输入
$ src/redis-cli
现在可以输入命令了,享受吧!
redis操作如下
package main import ( "fmt" "github.com/gomodule/redigo/redis" ) var pool *redis.Pool func init(){ pool = &redis.Pool{ MaxIdle: 8 ,//最大空闲连接数 MaxActive: 0,//表示和数据库最大连接数,0表示没有限制 IdleTimeout: 100,//最大空闲时间 Dial: func() (redis.Conn, error) { return redis.Dial("tcp","192.168.10.163:6379") }, } } func main(){ poolOperation() stringOperation() listOperation() hashOperation() } //连接池 func poolOperation(){ conn :=pool.Get() defer conn.Close() //存入 _,err :=conn.Do("set","name","佩奇") if err!=nil{ fmt.Println("conn Do err =",err) return } //取出 r1,err :=redis.String(conn.Do("get","name")) if err!=nil{ fmt.Println("conn.Do err=",err) return } fmt.Println("r=",r1) conn2 :=pool.Get() _,err = conn2.Do("set","name2","锅包肉00") if err !=nil{ fmt.Println("conn do err",err) return } //取出2 r2,err :=redis.String(conn2.Do("get","name2")) if err !=nil{ fmt.Println("conn.do err=",err) return } fmt.Println("r2=",r2) } //字符串操作 func stringOperation(){ conn,err :=redis.Dial("tcp","192.168.10.163:6379") if err!=nil{ fmt.Println(err) return } defer conn.Close() //通过go向redis写入字符串 _,err = conn.Do("set","name","abcdefghi嘎嘎" ) if err!=nil { fmt.Println(err) return } //对数据设置有效期 _,err =conn.Do("expire","name",10) r,err := redis.String(conn.Do("get","name")) if err!=nil { fmt.Println("set err=",err) return } fmt.Println("操作ok",r) } //列表操作、 func listOperation(){ conn,err :=redis.Dial("tcp","192.168.10.163:6379") if err!=nil{ fmt.Println(err) return } defer conn.Close() _,err = conn.Do("Lpush","gaga","小明",30,"校长",34) if err!=nil{ fmt.Println(err) } r,err :=redis.String(conn.Do("rpop","gaga")) fmt.Println("push",r) } //hash操作 func hashOperation(){ conn,err :=redis.Dial("tcp","192.168.10.163:6379") if err!=nil{ fmt.Println(err) return } defer conn.Close() _,err =conn.Do("HSet","user","name","join") if err!=nil{ fmt.Println(err) return } r1,err :=redis.String(conn.Do("HGet","user","name")) fmt.Println("r1",r1) }