基本介绍
Redis是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。
Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。
Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。
官网:https://redis.io和https://www.redis.cn/
Redis核心组件
1.解析指令
2.做相应处理
内存数据
key-value
list
set集合
zset有序集合
安装
官网下载,下载后解压
解压后可以看到
启动Redis
双击redis-serve.exe启动服务器端
双击redis-cli.exe启动客户端
redis命令说明https://redisdoc.com/
基本使用
redis安装好后,默认有16个数据库,初始默认使用0号库
1.添加key-val[set]
依次输入要添加的key值和value值,成功后可看到
2.获取key对应的值[get key]
3.切换redis 数据库 [select index]
4.查看当前数据库的key-val数量 [dbsize]
5. 清空当前数据库的key-val和清空所有数据库的key-val [flushdb flushall]
Redis的crud操作
Redis的五大数据类型:
String(字符串),Hash(哈希),List(列表),Set(集合),zset(sorted set:有序集合)
1.String的CRUD操作
set(如果存在就相当于修改,不存在就是添加)/get/del
-setex(set with expire)键秒值
setex key seconds value
-mset[同时设置一个或多个keyvalue值]
MSET key value [key value ....]
2.Hash(哈希)的crud操作
hset/hget/hgetall/hdel
Hash-使用细节和注意事项
-使用hmset和hmget可以一次性设置多个filed的值和返回多个field的值
-hlen统计一个hash有几个元素
-hexists key field 查看哈希表key中,给定域field是否存在
3.List(列表)crud
列表是简单的字符串列表,按插入顺序排序,你可以添加一个元素到列表的头部或者尾部
List本质是个链表,List的元素是有序的,元素的值可以重复
lpush/rpush/lrange/lpop/rpop/del/
-lindex 按照索引下标获取元素 -llen key
4.set(集合)
底层是HashTable数据结构,Set也是存放很多字符串元素,字符串元素是无序的,而且元素的值不能重复。
sismembers[判断是否有成员]
srem[删除指定值]
GO连接到Redis
安装第三方开源库Redis库
(确保安装了git)
GOPATH路径下执行命令:go get github.com/gomodule/redigo/redis
Redis连接池
通过Golang对Redis操作,还可以通过Redis连接池
1.事先初始化一定数量的链接,放入连接池
2.当Go需要操作Redis时,直接从Redis连接池取出链接即可
3.这样可以节省临时获取Redis链接的时间,从而提高效率
核心代码
var pool *redis.Pool
pool = &redis.Pool{
Maxldle:8, //最大空闲连接数
MaxActive:0,//表示和数据库的最大连接数,0表示没有限制
ldleTimeout:100,//最大空闲时间
Dial:func()(redis.Conn,error){
return redis.Dial("tcp","localhost:6379")
},
}
c := pool.Get()
pool.Close()