1. Redis
1.Redis key命令
- del key 删除key。
- dump key 序列化给定key,返回序列化后的值。
- exixts key 检查key是否存在。
- expire key 10 设置过期时间。
- keys pattern 查找符合给定模式的key。
- move key db 移动key到给定db。
- persist key 删除key过期时间
- pttl key 返回key过期时间(ms)
- rename key newkey 修改key名称
- type key 返回key存储的类型
2.String
Set Get del
3.Hash
HGet HSet HDel HGETALL
4.List
LPush LPop LRANGE
5.Set
SAdd SPop SMEMBERS
6.ZSet
ZAdd ZRANGE
2. Redis事务性
序号 | 命令及描述 |
---|---|
1 | DISCARD取消事务,放弃执行事务块内的所有命令。 |
2 | EXEC执行所有事务块内的命令。 |
3 | MULTI 标记一个事务块的开始。 |
4 | UNWATCH取消 WATCH 命令对所有 key 的监视。 |
5 | WATCH key [key …]监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。 |
3. Go 操作Redis
package main
import (
"fmt"
"github.com/garyburd/redigo/redis"
)
var pool * redis.Pool
func init() {
pool = &redis.Pool{
MaxIdle: 50,
MaxActive: 100,
IdleTimeout: 100,
Dial: func() (redis.Conn, error) {
c, err := redis.Dial("tcp","127.0.0.1:6379")
if err != nil{
fmt.Println("redis conn failed,",err)
return c, err
}
fmt.Println("redis conn success")
return c, err
},
}
}
// String Set Get
func StringSetGet() {
r := pool.Get()
_, err := r.Do("Set","abc",100) // 批量插入MSet
// r.Do("expirce","abc",10) // 设置10秒过期时间
if err != nil{
fmt.Println("redis set failed",err)
return
}
s, err := redis.Int(r.Do("Get","abc")) // 批量获取MGet
if err != nil{
fmt.Println("redis get failed,",err)
return
}
fmt.Println("Get key abc,value ",s)
}
// List(队列) lpush lpop
func ListLpushLpop() {
r := pool.Get()
_, err := r.Do("lpush","book_list","abc","ceg",300)
if err != nil{
fmt.Println("list plush failed,",err)
return
}
l, err := r.Do("lpop","book_list")
if err != nil{
fmt.Println("lpop book_list failed,",err)
return
}
fmt.Println("lpop book_list success,",l)
}
// Hash HSet HGet
func HashHsetHget() {
r := pool.Get()
_, err := r.Do("HSet","books","abc",100)
if err != nil{
fmt.Println("hash hset failed,",err)
return
}
h, err := r.Do("HGet","books","abc")
if err != nil{
fmt.Println("hash hget failed,",err)
return
}
fmt.Print("hash hget success,",h)
}
func main() {
StringSetGet()
ListLpushLpop()
HashHsetHget()
}