数据库Redis基础使用

一、Redis基本介绍

1、Redis 是 NoSQL数据库, 不是传统的关系型数据库
官网: https://redis.io/http://www.redis.cn/

2、Redis:REmote DIctionary Server(远程字典服务器),Redis性能非常高,单机能够达到15w qps,通常适合做缓存,也可以持久化。

3、是完全开源免费的,高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是最热门的NoSql数据库之一,也称为数据结构服务器

二、Redis安装和基本使用:

1、如何安装
官网下载
安装包

2、Redis的启动:
启动Redis的服务器端程序(redis-server.exe),直接双击即可运行。
这里写图片描述
启动Redis的客户端程序(redis-cli.exe),直接双击即可运行。
这里写图片描述
注意:启动客户端之前需要确保服务端已经启动。
3、Redis的操作的三种方式:
这里写图片描述
说明:
1) 使用telnet操作Redis
2) 使用redis-cli.exe操作Redis,双击即可进入客户端
3) Golang操作Redis
4、使用参考:
Redis命令参考网站:http://redisdoc.com/
Redis 教程:http://www.redis.net.cn/tutorial/3501.html

5、基本使用
说明: Redis 安装好后,默认有16个数据库,初始默认使用0号库, 编号是0…15
添加key-val [set]

redis>set 键名  值
redis>set key1  hello,tn 

查看当前redis的 所有key [keys *]

redis>keys * 
redis>keys a* 

获取key对应的值. [get key]

redis>get key1

切换redis 数据库 [select index]

redis>select 1 [切换到1号库]

如何查看当前数据库的key-val数量 [dbsize]

redis>dbsize 

清空当前数据库的key-val和清空所有数据库的key-val [flushdb flushall]

redis>flushdb
redis>flushal

特别说明:、Redis使用时,telnet和redis-cli哪个方便就是使用哪个工具,个人倾向于使用redis-cli,比较方便。

6、Redis操作的基本原理图
这里写图片描述

三、Redis的数据类型和CURD操作

1、Redis支持五大数据类型:

Redis的五大数据类型是: String(字符串) 、Hash (哈希)、List(列表)、Set(集合)
和zset(sorted set:有序集合)

2、String(字符串)及其CURD操作

1)基本介绍
string是redis最基本的类型,一个key对应一个value。
string类型是二进制安全的。除普通的字符串外,也可以存放图片等数据。
redis中字符串value最大是512M
2)使用案例:
举例,存放一个地址信息:

address 北京天安门 

说明 :

key : address
value: 北京天安门

这里写图片描述
3)String(字符串) -CURD
举例说明Redis 的 String字符串的CURD操作.

set[如果存在就相当于修改,不存在就是添加]/get/del 

这里写图片描述
4)String(字符串)-使用细节和注意事项

mset[同时设置一个或多个 key-value 对]

这里写图片描述

mget[同时获取多个 key-val]

这里写图片描述

setex(set with expire)键秒值(设置变量存在的时间)

这里写图片描述
注意:字符串:设置中文时Redis会转码在go中可以正常读取数据。不影响正常使用

3、Hash (哈希) 及其CURD操作

1)基本介绍
Redis hash 是一个键值对集合。var user1 map[string]string
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对
象。
2)案例
举例,存放一个User信息:(user1)
user1 name “smith” age 30 job “golang coder”
说明 :
key : user1
name 张三 和 age 30 就是两对 field-value

这里写图片描述
3)CURD操作
举例说明Redis 的 Hash的CURD的基本操作.
hset/hget/hgetall/hdel
演示添加user 信息的案例 (name,age
这里写图片描述
4)使用细节和注意事项
在给user设置 name 和 age 时,前面我们是一步一步设置,使用hmset 和 hmget 可以一次性来设置多个 filed 的值和返回多个field的值 。

hlen :统计一个hash 有几个元素.

hexists key field:查看哈希表 key 中,给定域 field 是否存在
这里写图片描述

4、List(列表) 及其CURD操作

1) 基本介绍
列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列
表的头部(左边)或者尾部(右边)。
List本质是个链表, List 的元素 是有序的,元素的值可以重复.

2)案例
举例,存放多个地址信息:

city   北京 天津  上海 

说明 :

key : city
北京 天津  上海 就是三个元素

这里写图片描述
3)CURD操作
举例说明Redis 的List的CURD操作。
lpush/rpush/lrange/lpop/rpop/del/
lrange
LRANGE key start stop
返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。
下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。
你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推

List画图帮助理解(可以把list想象成一根管道.)

这里写图片描述

案例:
这里写图片描述

4) List-使用细节和注意事项
(1) lindex,按照索引下标获得元素(从左到右, 编号从0开始.)
(2) LLEN key
返回列表 key 的长度,如果 key 不存在,则 key 被解释为一个空列表,返回 0
(3) List的其它说明

  • List 数据,可以从左或者右 插入添加;
  • 如果值全移除,对应的键也就消失了。

5、Set(集合) 及其CURD操作
1) 基本介绍
Redis的Set是string类型的无序集合。
底层是HashTable数据结构, Set 也是存放很多字符串元素,字符串元素是无序
的,而且元素的值不能重复

2)案例
举例,存放多个邮件列表信息:

email   sgg@sohu.com tom@sohu.com  

说明 :

key : email
tn@sohu.com tom@sohu.com  就是二个元素
redis>sadd email  xx xxx

这里写图片描述
3)CURD操作
举例说明Redis 的 Set 的CURD操作.

sadd
smembers[取出所有值]
sismember[判断值是否是成员]
srem [删除指定值] 

这里写图片描述

6、SortedSet(有序集合)及其CURD操作

1) 基本介绍
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

2)案例



redis> ZADD page_rank 10 google.com
(integer) 1


# 添加多个元素

redis> ZADD page_rank 9 baidu.com 8 bing.com
(integer) 2

redis> ZRANGE page_rank 0 -1 WITHSCORES
1) "bing.com"
2) "8"
3) "baidu.com"
4) "9"
5) "google.com"
6) "10"


# 添加已存在元素,且 score 值不变

redis> ZADD page_rank 10 google.com
(integer) 0

redis> ZRANGE page_rank 0 -1 WITHSCORES  # 没有改变
1) "bing.com"
2) "8"
3) "baidu.com"
4) "9"
5) "google.com"
6) "10"


# 添加已存在元素,但是改变 score 值

redis> ZADD page_rank 6 bing.com
(integer) 0

redis> ZRANGE page_rank 0 -1 WITHSCORES  # bing.com 元素的 score 值被改变
1) "bing.com"
2) "6"
3) "baidu.com"
4) "9"
5) "google.com"
6) "10"

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值