redis非关系数据库

1.NOSQL的概念

NOSQL(Not only sql):不仅是sql语句, 它是对所有非关系型数据库的一种统称。 除去关系型数据库之外的都是非关系数据库。

2. NOSQL和RDBMS的区别

RDBMS
- 高度组织化结构化数据。 user---userid username age sex .....
- 结构化查询语言(SQL) sql语句
- 数据和关系都存储在单独的表中。
- 数据操纵语言DML,数据定义语言DDL
- 严格的一致性. 事务
- 基于事务
 NoSQL
- 代表着不仅仅是SQL
- 没有声明性查询语言
- 键 - 值对存储。
- 最终一致性,而非ACID【原子,一致,隔离,持久】属性
- 非结构化和不可预知的数据  字符串  对象  队列  集合
- 高性能,高可用性和可伸缩性。 适合搭建集群。  mysql搭建集群。非常复杂。主从模式

NOSQL是替换RDBMS的吗? 不是。

3. 常见的NOSQL数据库类型

Redis就属于非关系数据库。
Mongodb属于非关系数据库。----接近mysql数据库

4. 什么是redis。

Redis是一种开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。Redis提供数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,地理空间索引和流。Redis具有内置的复制,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster自动分区提供了高可用性。

Redis是一个开源的使用ANSI C语言编写可基于内存亦可基于磁盘,Key-Value数据库。类似于map

5. 为什么使用redis

1.Redis读取的速度是110000次/s,写的速度是81000次/s
2.原子 。Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
3.支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合)
4.持久化--磁盘,主从复制(集群)
5.官方不支持window系统,但是又第三方版本。

6.如何安装redis.

准备工作

1.安装redis需要的环境。yum install -y gcc-c++
2.上官网下载redis源码安装包。 
redis-5.0.8.tar.gz(根据自己版本需求)

安装步骤

1. 解压redis到/usr/local
2. 进入redis目录并执行编译命令 make
3. 执行安装命令 make install

开启redis服务。

redis-server redis.conf

在这里插入图片描述

使用redis客户端连接redis服务器

redis-cli  -h redis服务器的ip   -p redis服务器的端口号

在这里插入图片描述

7. redis配置文件

# 表示启动redis服务器时 后台启动。
daemonize yes
# 默认的端口号。
port 6379
# 默认运行绑定的端口号~~~~~~~~~~~~~~~~~~~~~~~HTTP协议~~~~~~~~~~~~
# bind 127.0.0.1
# 0.0.0.0 表示广播模式 意思是所有人都可以连接。127.0.0.1 
bind 0.0.0.0

8. redis图形化界面的客户端

在这里插入图片描述

9. redis的常用命令。

9.1 对key操作的命令

keys *: 查询所有的key;
del key....:删除指定的key
expire key seconds: 为指定的key设置过期时间单位为秒
ttl key: 查询指定key的存活时间

9.2 对数据库的操作命令

flushdb: 清空当前数据库中的数据。
select index: 选择数据库 
flushall: 清空所有数据库中的数据。

10. redis支持的数据类型

http://redisdoc.com/

string(字符串)
hash(哈希)
list(列表)
set(集合)
zset(sorted set:有序集合)。

11. String字符串类型–value值为字符串类型

可以存放任意类型的字符串。java对象—>json字符串—>string

1.set key value: 把字符串的value存放到对应的key上。
2.get key: 根据指定的key获取对应字符串的value
3.mset key value key value key value....: 一次存放多个字符串的value到相应的key上
4.mget key key...: 根据指定的多个key获取对应的字符串的value
5.setnx key value: 把指定的value存放到对应的key上,如果对应的key已经存在,则不存储。
	如果不存在则存储。 返回0或者1
6.incr key: 为指定的key的value值进行递增。应用场景:点赞 收餐  转发等
7.decr key: 递减

12. Hash(哈希) --value值为hash类型。

1.hset key field value: 存放一个指定key的field-value的数据库
2.hget key field:获取指定key的field字段对应的value值。
3.hkeys key: 获取指定key的所有field字段名
4.hvals key: 获取指定key的所有value值。
5.hgetall key: 获取指定key的所有的field和value值。
6.HDEL key field: 删除指定key的field字段。

13.redis的列表(list) 线性有序 顺序 可重复 元素可存文字/二进制数据 类似编程语言中的list

1.LPUSH(将元素推入到列表左端)
	命令LPUSH list item [item item ...]
2.RPUSH(将元素推入到列表右端)
	命令RPUSH list item [item item ...]
3.LPUSHX、RPUSHX(只对已存在的列表执行推入操作)
	命令LPUSHX list item和RPUSHX list item
4.LPOP(弹出列表最左端的元素)和RPOP(弹出列表最右端的元素)
	命令LPOP list和RPOP list
5.RPOPLPUSH(将右端弹出的元素推入到左端)
	命令RPOPLPUSH source target
6.LLEN(获取列表的长度)
	命令LLEN list
7.LINDEX(获取指定索引上的元素)
	命令LINDEX list index

14.set集合

1.sadd key value.....: 将一个或多个 member 元素加入到集合 key 当中,
已经存在于集合的 member 元素将被忽略。

2.spop key: 移除并返回集合中的一个随机元素。

3.smembers key:获取指定key下的所有的元素

4.sinter key key ...:求所有集合的交集。

15.sortSet 有序集合。

应用场景: 排行耪,点赞,转发等。
1.zadd key  score value score value ....:添加有序集合元素。

2.zrange key start end: 获取指定返回的元素。
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值