redis的使用和常用数据类型

1.关系型数据库和非关系型数据库的区别:

1.关系型数据库是指采用了关系模型来组织数据的数据库。简单来说,关系模式就是二维表格模型。

主要代表:SQL Server,Oracle,Mysql,PostgreSQL。

具有严格的事务一致性。

2.NoSQL非关系型数据库,主要指那些非关系型的、分布式的,且一般不保证ACID的数据存储系统,主要代表MongoDB,Redis、CouchDB。

键值对存储,高可用性、高性能和可伸缩性。

2.什么是redis:

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

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

3.为什么使用redis:

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

4.如何安装redis:

①安装redis的环境:

yum install -y gcc-c++

②官网下载redis源码安装包

https://redis.io/download 现在最新安装包为redis-6.2.2.tar.gz,本人使用的是redis-5.0.8.tar.gz

③打开linux运行(本人是centos7)

将redis安装包复制到虚拟机,并将redis解压到/usr/local

在这里插入图片描述

进入该目录,执行一下命令:

编译命令:
make
安装命令:
make install

④安装好redis,开启redis服务

开启命令:

redis-server redis.conf

在这里插入图片描述

在这里插入图片描述

启动成功的页面:

在这里插入图片描述

⑤连接redis服务器

redis-cli  -h redis服务器的ip   -p redis服务器的端口号  默认的可以不写IP和端口

在这里插入图片描述

⑥更改redis服务启动为后台启动(自愿)

配置文件137行 daemonize no 改为 yes

配置文件70行 bind 0.0.0.0 广播模式,所有人都可以连接。

⑦安装redis图形化界面客户端

在这里插入图片描述

5.redis常用命令:

5.1.对key的操作命令

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

5.2.对数据库的操作命令

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

6.redis支持的数据类型

6.1 String类型

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

6.2 hash哈希类型

存放任意类型字符串,java--json--string
hset key field value: 存放一个指定key的field-value的数据库
hget key field:获取指定key的field字段对应的value值。
hkeys key: 获取指定key的所有field字段名
hvals key: 获取指定key的所有value值。
hgetall key: 获取指定key的所有的field和value值。
HDEL key field: 删除指定key的field字段。

6.3 list队列

lpush: 将一个或多个值 value 插入到列表 key 的表头.
lpop: 移除并返回列表 key 的头元素。
lrange: 返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。

6.4 set集合

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

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

smove source destint member: 

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

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

6.5 sorted set 有序集合

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值