goLang与redis

一.前言

Redis是一种高性能的Key-Value数据库

1.Redis特性

Redis 与其他 key - value 缓存产品有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

2.Redis 优势

  • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
  • 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
  • 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
  • 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

3.redis应用场景

  • 用来做缓存(ehcache/memcached)——redis的所有数据是放在内存中的(内存数据库)
  • 可以在某些特定应用场景下替代传统数据库——比如社交类的应用
  • 在一些大型系统中,巧妙地实现一些特定的功能:session共享、购物车

二.安装与启动

1.windows版
官网是没有windows版下载链接的,可以去github上下载
https://github.com/MicrosoftArchive/redis/tags
2.linux
wget http://download.redis.io/releases/redis-3.2.8.tar.gz

3.bin目录
a)redis-server redis服务器
b)redis-cli redis命令行客户端
c)redis-benchmark redis性能测试工具
d)redis-check-aof AOF文件修复工具
e)redis-check-rdb RDB文件检索工具

4.服务器端启动
windows:可直接双击redis-server.exe启动
linux:

		sudo service redis start

三.数据库操作

1.string类型

在Redis中字符串类型的Value最多可以容纳的数据长度是512M。

1.1.保存

//普通保存
set key value
//设置过期时间,单位为秒
setex key seconds value
//设置多个键值
mset key1 value1 key2 value2....

1.2 获取

//普通获取
get key
//获取多个值
mget key1 key2...

1.3查找键

keys pattern(参数⽀持正则表达式)

	//查找所有的键
	keys * 
	查看名称中包含a的键
	keys 'a*'

1.4是否存在

判断键是否存在,如果存在返回1,不存在返回0

exists key1

1.5 删除键

del key1 key2 ...

2.hash类型

2.1保存

设置单个属性

hset key field value
eg: hset User name king

设置多个属性

hmset key field1 value1 field2 value2 ...

2.2获取

获取一个属性值

hget key filed

获取多个属性值

hmget key field1 field2...

获取指定键所有的属性

hkeys key

获取所有属性的值

hvals key

获取一个hash有多少个属性

hlen key

删除

hdel key field1 field2 ..

3.list与set类型

3.1增加

	//左侧增加
	lpush key value1 value2 ...
	//右侧增加
	rpush key value1 value2 ...

3.2获取

lrange key start stop

stop代表最后一个元素

四.goLang操作redis

Go操作redis文档 https://godoc.org/github.com/gomodule/redigo/redis

1.安装
go get github.com/gomodule/redigo/redis

2.示例操作

package main
import ( "github.com/gomodule/redigo/redis")
func main(){
        conn,_ := redis.Dial("tcp", ":6379")
        defer conn.Close()
        conn.Do("set", "c1", "hello")
}

猜你喜欢

转载自blog.csdn.net/jin870132/article/details/98635188