Redis是一个完全开源的,高性能的key-value数据库,nosql,没有表的概念
redis安装地址: https://github.com/tporadowski/redis/releases。
配置文件:Linux:redis.conf Windows:redis.windows.conf
打开服务:./redis-server
客户端:./redis-cli
一个特别好用的windows可视化工具:https://github.com/tporadowski/redis/releases
redis 127.0.0.1:6379> SET name "zwh"
redis 127.0.0.1:6379> Get name
"zwh"
has是一个string类型的field和value的映射表
DEL name
删除string中创建的key
redis 127.0.0.1:6379>DEL name
redis 127.0.0.1:6379>HMSET name field1 "Hello" field2 "world"
redis 127.0.0.1:6379>HGET name field1
"Hello"
redis 127.0.0.1:6379>HGET field2
"world"
每个 hash 可以存储 232 -1 键值对(40多亿)。
一个字符串列表,按照插入顺序排序,可以添加一个元素到列表的左边或者右边
redis 127.0.0.1:6379>DEL name
redis 127.0.0.1:6379>lpush name redis
(integer) 1
redis 127.0.0.1:6379>lpush name mongodb
(integer) 1
redis 127.0.0.1:6379>lpush name rabbitmq
(integer) 1
redis 127.0.0.1:6379>lrange name 0 10
1) "rabbitmq"
2) "mongodb"
3) "redis"
是string类的无序集合,集合内元素具有唯一性
redis 127.0.0.1:6379>sadd name redis
zset,同set是一个String类的元素的集合。
不同的是每个元素都会关联一个double类型的分数。redis通过改分数来为集合中的成员进行从小到大的排序。
redis 127.0.0.1:6379>zadd name 0 redis
redis 127.0.0.1:6379>zadd name 0 mongodb
redis 127.0.0.1:6379>ZRANGEBYSCORE name 0 1000
GO操作redis通过github.com/garyburd/redigo/redis
包,直接执行redis的操作。
string_demo:
package main
import (
"fmt"
"github.com/garyburd/redigo/redis"
)
func main(){
conn,err := redis.Dial("tcp","127.0.0.1:6379")
if err != nil {
fmt.Println("connect redis err:",err)
return
}
defer conn.Close()
//设置值
_,err = conn.Do("SET","name","Zhangwenhao")
if err != nil {
fmt.Println("error:",err)
}
name,err := redis.String(conn.Do("GET","name"))
if err != nil {
fmt.Println("error:",err)
}else {
fmt.Printf("My name is:%s \n",name)
}
//设置过期时间
_,err = conn.Do("expire","name",30) //10秒过期
if err != nil {
fmt.Println("error:",err)
return
}
}
OUTPUT:
My name is:Zhangwenhao
原文:https://www.cnblogs.com/Gumi-o/p/14893397.html