Redis 数据库入门

## 1 什么是nosql

​ NoSql not only SQL 不仅仅是SQL 是一种数据库理念 泛指非关系型数据库

为什么需要nosql

传统 并发低 数据量小的 不需要高可用 oa crm项目 或者是政府项目 银行项目

互联网项目:高并发 大数据量 高可用 京东 百度 淘宝 抖音 滴滴 ofo 钉钉

垂直电商: 只卖一个行业 小红书

High performance 高并发对数据库的读写操作

HugeStorage 对数据库高校存储和访问

High Scalabillity 拓展性

​ nosql 主流产品 redis 键值存储

​ 典型的应用: 内容缓冲 主要用来处理大量数据的高访问题

​ 优势 快速查询

​ 劣势: 存储数据缺少结构化

​ 文档型数据库: mongoDB

​ 典型的应用:wen应用(key -value value是结构化的)

​ 优势 数据结构要求不严格

​ 劣势:查询性能不高 而且缺乏统一的查询方法

​ 图形(Graph)数据库

​ 典型应用: 社交网络

​ 优势: 利用图结构关系算法

​ 劣势: 需要对整个图计算才能获得结果

​ nosql 特点: 在大数据存取上具备关系型数据库无法比拟的性能优势, 易拓展 高性能 处理大量数据 灵活的数据模型 高可用

## 2 Redis 概述

​ Redis 是用c语言开发一个开源的高性能的键值对(key-value)数据库 官方测试数据 50个并发同时执行100000个请求 写81000次/s

## 3 Redis 应用场景 重点

缓存(数据查询 短连接 新闻内容 商品内容)

聊天室的在线好友列表

任务列表(秒杀 抢购 12360)

应用排行榜

网站访问统计

数据过期处理

分布式集群框架中session分类

## 4 windows 版本Redis安装和使用 重点

4. 1提倡使用 Linux版本 GitHub下载windows 版本

http://redis.io/download

GitHub下载地址

https://gitHub.com/MSOpenTech/redis/tags

4.2 启动和关闭

启动 :端口号6379

windows服务:命令行输入:

 redis-server --service-install redis.windows.conf --loglevel verbose --service-name Redis 安装

​ redis-server.exe --service-uninstall 卸载

## 5 Redis 的数据类型 重点

字符串 String

散类型 hash

列表类型 list

集合类型 set

有序集合类型 sortedset

## 6Redis常用命令 和通用命令

6. 1redis 是一种高级key-value 存储系统 value 是五种数据类型

​ 关于key 定义的时候需要注意几个点

​ a:不能太长 不要超过1024个字节

​ b: 不能太短 太短降低可读性

​ c:在项目中key 最好有一个统一的命名规范

6.2 字符串常用命令

​ set key值 “value值”

​ get key

​ del key 删除指定key

6.3 hash类型

​ 概述 : 可以看成具有String key 和String Value 的map 容器 适合存储值对象的信息 比如 username Password Age 42940000个键值对

​ 常用命令

​ hset key field value 为指定的key 设定field/value (键值对)

hget key field 返回指定的key中的field的值

​ hgetall key 可以获得所有数据

​ hdel key field[filed....] 可以删除一个或者多个字段

```
hset myhash username lijun
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "username"
2) "lijun"
127.0.0.1:6379> hset myhash username1 junjun
(integer) 1
127.0.0.1:6379> hget all myhash
(nil)
127.0.0.1:6379> hgetall myhash
1) "username"
2) "lijun"
3) "username1"
4) "junjun"
127.0.0.1:6379> hdel myhash username
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "username1"
2) "junjun"
127.0.0.1:6379> hget myhash username1
"junjun"
```

​ 6.4 列表类型 list 有序 可重复

​ 概述: 在Redis List类型是按照插入顺序进行排序

​ lpush key values[v1 v2...]

​ lpop key 返回并且弹出指定的key关联中最后一个元素

​ rpop key 返回并且弹出指定的key关联中第一个元素

​ lrange key 索引 索引(0 -1) 遍历该键所有的数据

```
127.0.0.1:6379> lpush mylist qingqing taotao yanyan
(integer) 3
127.0.0.1:6379> lpop mylist
"yanyan"
127.0.0.1:6379> lpop mylist
"taotao"
127.0.0.1:6379> lpop mylist
"qingqing"
127.0.0.1:6379> rpop mylist
(nil)
127.0.0.1:6379> lpush mylist qingiqng taotao
(integer) 2
127.0.0.1:6379> rpop mylist
"qingiqng"

127.0.0.1:6379> lrange myslist 0 100
(empty list or set)
127.0.0.1:6379> lpush a b c d e f
(integer) 5
127.0.0.1:6379> LRANGE 0 100
(error) ERR wrong number of arguments for 'lrange' command
127.0.0.1:6379> LRANGE a 0 100
1) "f"
2) "e"
3) "d"
4) "c"
5) "b"
127.0.0.1:6379> lpush mylist q w e r t
(integer) 6
127.0.0.1:6379> LRANGE mylist 0 -1
1) "t"
2) "r"
3) "e"
4) "w"
5) "q"
6) "taotao"
127.0.0.1:6379>
```

​ 6.5 集合类型 set 无序 唯一

​ 在Redis 没有排序的字符集合 执行添加删除 或者判断某一元素是否存在

​ sadd key values 向set中添加数据 如果该key的值已经存在 不会重复添加

​ srem key members 删除指定的成员

​ smembers key 获取set中所有的成员

```
127.0.0.1:6379> sadd myset a b c d e
(integer) 5
127.0.0.1:6379> smembers myset
1) "d"
2) "c"
3) "b"
4) "a"
5) "e"
127.0.0.1:6379> srem myset a b
(integer) 2
127.0.0.1:6379> smembers myset
1) "d"
2) "c"
3) "e"
127.0.0.1:6379>

```

​ 6.6 有序集合 类型sortset 元素唯一 还有序

​ zadd key values

​ zrem key value

​ zrange key 索引 索引

```

127.0.0.1:6379> zadd zadd 2 lijun 10 gaoyang 7 shenshen 15 chaochao 6 feifei
(integer) 5
127.0.0.1:6379> zrange zadd 0 -1
1) "lijun"
2) "feifei"
3) "shenshen"
4) "gaoyang"
5) "chaochao"
127.0.0.1:6379> zrem zadd lijun
(integer) 1
127.0.0.1:6379> ZRANGE zadd 0 -1
1) "feifei"
2) "shenshen"
3) "gaoyang"
4) "chaochao"
127.0.0.1:6379>

```

## 7 Redis 持久化

## 8 Redis 持久化机制

## 9 jedis的基本使用

猜你喜欢

转载自www.cnblogs.com/enlht/p/11265028.html