非关系型数据库之--Redis--基础部分

一、什么是Redis
1)是一个通过c语言编写的开源 的数据库
2)可以用来进行数据存储,消息队列,数据缓存
3)他的特点是可以将数据存储在内存中,性能非常快
4)他支持的存储类型:string字符串,hash键值对,set无序集合,zset有序集合。
二、运行时命令
1)推荐在linux上运行
2)解压:tar -zxvf redis安装包
3)安装:在解压后的文件内运行make命令
4)启动服务:在redis文件内的src目录下运行./redis-server &
5)启动客户端:在redis文件内的src目录下运行./redis-cli
6)jps查看进程显示Redis默认端口号为:6379
三、Redis支持的数据类型
1)string类型
string是Redis的最基本的类型,是二进制安全的,可以包含任何数据,存储图片时会将图片进行序列化存储。存储的最大值是512MB。
2)hash类型
Redis的hash’是一个键值对的集合。相当于是string类型的field和value的映射表。特别适合用来存储对象。
在这里插入图片描述
3)list类型
list类型是一个列表的形式,一个key对应多个值,并且值是可以重复的。我们从列表的头或尾进行添加数据。会根据添加的顺序进行排序,键在值在,键亡值亡。
适用场景如:博客的粉丝列表等
4)set类型
set与list类似,也是一个键对应多个值,但是值不能重复。
5)zset类型
zset相对于set的区别就是他可以给存储的数据添加一个分数,并且可以根据分数进行排序。
适用于热门数据的排序等

四、在项目中扮演的角色
在java项目中扮演一个缓存数据或者进行消息队列处理的角色,缓存数据就是将数据存储到redis内,为了提高查询效率,减轻mysql的压力。系统架构如下图在这里插入图片描述

五、操作
1、key的操作
1)查看数据库中有哪些key
127.0.0.1:6379> keys *
2)查看key的过期时间,-1表示永不过期,-2表示已过期,否则返回剩余时间
127.0.0.1:6379> ttl k1
3)设置过期时间
127.0.0.1:6379> expire k1 10
如果时间到了该键将会被删除
4)删除key,可以删除一个或者多个
127.0.0.1:6379> del k1
5)取消设置的过期时间
127.0.0.1:6379> persist x1
6)返回存储值的类型
127.0.0.1:6379> type x1
2.3.3、string操作
1)存数据
127.0.0.1:6379> set k1 v1
2)取值,如果没有该key返回(nil)
127.0.0.1:6379> get k1
3)当key不存在时才赋值,因为key存在会将原值值覆盖
127.0.0.1:6379> setnx k2 v2
4)同时设置多个kv对
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3 k4 v4 v5 k5 k6 v6 k7 v7 k8 v8
5)设置值同时设置过期时间
127.0.0.1:6379> setex k10 20 v10
6)减一,只能用在value为整数的key上
127.0.0.1:6379> decr k1
7)加一
127.0.0.1:6379> incr k1
8)根据步长加减
127.0.0.1:6379> incrby k1 6
127.0.0.1:6379> decrby k1 6
9)返回字符串长度
127.0.0.1:6379> strlen x1
10)设置多个值,仅当key不存在,只要有一个存在就不成功
127.0.0.1:6379> msetnx k99 99 k100 100
11)加浮点,加负数就是减
127.0.0.1:6379> incrbyfloat k1 -0.2
12)覆盖指定范围的值
127.0.0.1:6379> setrange x1 6 zi
13)追加
127.0.0.1:6379> append x1 nizhen...
14)替换并返回旧值
127.0.0.1:6379> getset x1 yy
15)批量获取数据
127.0.0.1:6379> mget k1 k2 k3 k4
2、list操作
1)存值
将值添加到头
127.0.0.1:6379> lpush l1 xiaoliyu daliyu liyu yu li
将值添加到尾
127.0.0.1:6379> rpush l1 xiaoming
2)查看,值还在list中
获取指定下标的数据
127.0.0.1:6379> lindex l1 2
获取指定范围的数据
127.0.0.1:6379> lrange l1 0 6
3)取值
从左往右弹出一个值
127.0.0.1:6379> lpop l1
从右往左弹出一个值
127.0.0.1:6379> rpop l1
4)将列表中的最后一个数据取出放到另一个列表的头
127.0.0.1:6379> rpoplpush l2 l1
5)将值取出,没有值会进入阻塞,可以设置阻塞时间,如果在阻塞时间内如果有值就能弹出该值
127.0.0.1:6379> brpoplpush l2 l1 3
(nil)
(3.08s)
6)删除命令
移除列表元素,从左开始匹配移除指定数量的元素
Count>0从左开始删除指定个元素,小于0从右开始,等于0移除所有匹配的
127.0.0.1:6379> lrem key count value
保留指定区间内的元素
127.0.0.1:6379> ltrim l1 0 3
3、hash
1)设置一个值
127.0.0.1:6379> hset h1 name xiaoming
2)获取一个值
127.0.0.1:6379> hget h1 name
3)批量设置值
127.0.0.1:6379> hmset h2 name xiaoliyu age 7 birthday 2019
4)批量获取值
127.0.0.1:6379> hmget h2 name age birthday
5)只有当指定key的filed不存在时存储值
127.0.0.1:6379> hsetnx h2 name xiaoxiao
6)获取指定key下所有的值
127.0.0.1:6379> hvals h2
4、set
1)存值,不能存在重复的数据,而且是无序
127.0.0.1:6379> sadd s1 shang wang sun liu wang dong zhang yuan hu wu
2)取值
127.0.0.1:6379> sscan s1 0
获取匹配的数据和数量
127.0.0.1:6379> sscan s1 0 match s* count 1
3)删除
127.0.0.1:6379> srem s1 wang
4)遍历
127.0.0.1:6379> smembers s1
5)并集
127.0.0.1:6379> sunion s1 s2
6)交集
127.0.0.1:6379> sinter s1 s2
7)差集
127.0.0.1:6379> sdiff s1 s2
8)返回集合中的数据量
127.0.0.1:6379> scard s2
5、zset
1)添加数据
127.0.0.1:6379> zadd z1 20 z20 10 z10 15 z15 100000000000 z1000000000
2)获取指定区间的数据,根据分数从高到低排序
127.0.0.1:6379> zrevrange z1 0 4
3)获取指定分数区间的成员个数
127.0.0.1:6379> zcount z1 1 100
4)移除数据
移除指定下标的数据,前包含后也包含
127.0.0.1:6379> Zremrangebyrank z1 0 2
移除指定的元素
127.0.0.1:6379> zrem z1 z1 z2
移除指定分数区间内的数据
127.0.0.1:6379> Zremrangebyscore z1 5 10000000000000
按照输入的字母条件去匹配内容,将符合两字母间的数据移除数据包含前不包含后
如果输入的条件为多字母,匹配完首字母,再匹配下一个字母,确定范围后,将范围内的数据移除
127.0.0.1:6379> Zremrangebylex z3 [a10 [d
5、杂七杂八
1)查看进程
[root@zhiyou101 src]# ps -ef | grep redis root 3223 2155 0 10:56 pts/0 00:00:00 ./redis-server *:6379 root 3228 2155 0 10:56 pts/0 00:00:00 grep --color=auto redis
.2)杀死进程
[root@zhiyou101 src]# kill -9 PID
案例:杀死redis-server进程
[root@zhiyou101 src]# kill -9 3223
3)redis后台运行
开启虚拟机,再打开xshell
进入到/usr/local/redis-5.0.3/src 下运行以下命令
[root@zhiyou101 src]# ./redis-server &
4)redis客户端连接服务端
[root@zhiyou101 src]# ./redis-cli
默认连接本机上端口号为6379的服务
[root@zhiyou101 src]# ./redis-cli -h ip -p 端口 -a 密码
例如:./redis-cli –h 192.168.40.101 –p 6379 –a 123456
但之后执行keys*时会出现下面的错误
在这里插入图片描述
6、问题
1)开启受保护模式,并且你这个ip没有被绑定。默认绑定了127.0.0.1
在这里插入图片描述
解决方法:
1.执行exit,运行[root@zhiyou101 src]# ./redis-cli
2.空

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值