数据库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"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值