Redis基本介绍及使用
程序员文章站
2022-05-20 14:10:20
...
目录
Redis 基本介绍
- Redis是NoSQL数据库,不是传统的关系型数据库
- 官网:
- Redis:REmote-DIctionary Server(远程字典服务器),Redis性能非常高,单机能够达到15w qps,通常适合做缓存,也可以持久化。
- 是完全开源免费的,高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是最热门的NoSql数据库之一,也称为数据结构服务器
Redis 的安装
- 下载后直接解压就有Redis的服务器端程序(redis-server.exe)和客户端程序(redis-cli.exe),直接双击即可运行,并不需要安装。
Redis 操作的基本原理图
Redis 的启动
Redis 的操作指令一览
- Redis 命令参考文档:
Redis 的基本使用
-
说明:
- Redis 安装好后,默认有 16 个数据库,初始默认使用 0 号库, 编号是 0...15
- 添加 key-val [set]
- 获取 key 对应的值. [get key]
- 查看当前 redis 的 所有 key [keys *]
- 切换 redis 数据库 [select index]
- 例:使用第二个数据库
- 如何查看当前数据库的 key-val 数量 [dbsize]
- 清空当前数据库的 key-val 和清空所有数据库的 key-val [flushdb(清空当前数据库) ;flushall(清空所有数据库)]
Redis 的 Crud 操作
Redis 的五大数据类型
- Redis 的五大数据类型是: String(字符串) 、Hash (哈希)、List(列表)、Set(集合)和 zset(sorted set:有序集合)
String(字符串) 介绍
- string 是 redis 最基本的类型,一个 key 对应一个 value。
- string 类型是二进制安全的。除普通的字符串外,也可以存放图片等数据。
- redis 中字符串 value 最大是 512M
- 说明 :
- key :name
- value: Jim
-
String(字符串) -CRUD
- set[如果存在就相当于修改,不存在就是添加]
- get/del key
- setex(set with expire)键秒值
- mset[同时设置一个或多个 key-value 对]
- mget[同时获取多个 key-val]
Hash (哈希)-介绍
- 基本的介绍
- Redis hash 是一个键值对集合。var user1 map[string]string
- Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
- 举例,存放一个 User 信息:(user1)
- user1 name "smith" age 30 job "golang coder"
- 说明 :
-
Hash(哈希)-CRUD
- 举例说明 Redis 的 Hash 的 CRUD 的基本操作.
-
hset/hget/hgetall/hdel
- 演示添加 user 信息的案例 (name,age )
- 在给 user 设置 name 和 age 时,前面我们是一步一步设置,使用 hmset 和 hmget 可以一次性来设置多个 filed 的值和返回多个 field 的值 。
- hlen 统计一个 hash 有几个元素.
- hexists key field查看哈希表 key 中,给定域 field 是否存在
List(列表)-介绍
- 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
- List 本质是个链表, List 的元素 是有序的,元素的值可以重复.
举例,存放多个地址信息:
city 北京 天津 上海
说明 :
key : city
北京 天津 上海 就是三个元素
-
List(列表)-CRUD
- 举例说明 Redis 的 List 的 CRUD 操作。
- lpush/rpush/lrange/lpop/rpop/del/
-
List-使用细节和注意事项
- lindex,按照索引下标获得元素(从左到右,编号从0开始)
- LLEN key返回列表key的长度,如果key不存在,则key被解释为一个空列表,返回0
- List数据,可以从左或者右插入添加;
- 如果值全移除,对应的键也就消失了。
Set(集合) - 介绍
- Redis 的 Set 是 string 类型的无序集合。
- 底层是 HashTable 数据结构, Set 也是存放很多字符串元素,字符串元素是无序的,而且元素的值不能重复
举例,存放多个邮件列表信息:
email aaa@qq.com aaa@qq.com
说明 :
key : email
aaa@qq.com aaa@qq.com 就是二个元素
redis>sadd email xx xxx
-
Set(集合)- CRUD
- 举例说明 Redis 的 Set 的 CRUD 操作. sadd
- smembers[取出所有值]
- sismember[判断值是否是成员]
- srem [删除指定值]
- 举例说明 Redis 的 Set 的 CRUD 操作. sadd
- 演示添加多个电子邮件信息的案例
- 【注】:参考尚硅谷韩顺平老师的Go核心教程