Redis
1.Redis知识补充(NOSQL)
1.1什么是NOSQL
NOSQL(全称 No Only SQL)意为不仅仅只有SQL,其是对所有非关系型数据库的统称
- - 高度组织化结构化数据:
- - 结构化查询语言(SQL) 支持sql语句 select * from t_user;
- - 数据和关系都存储在单独的表中。---记录和关系
- - 数据操纵语言DML [增删改],数据定义语言 DDL [表结构的修改]
- - 严格的一致性
- - 基础事务 【mysql支持事务--ACID】
NoSQL
- - 代表着不仅仅是SQL
- - 没有声明性查询语言 [不支持select 语句]
- - 键 - 值对存储,【类似于map】
- - 不支持事务的一致性
- -
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
然后对其进行解压
tar -zxvf Redis压缩包名
【注:这里的解压包名是我更改后的名称】
随后进入其解压的文件夹中进行编译
编译安装命令:
make install
编译的会有点慢要等一会
安装好后输入ls命令查看文件
找到图中红圈内的内容
我们启动Redis就要依据其配置文件
2.3 配置Redis.conf文件
vi redis.conf 编译或者直接在finalshell软件下方打开此文件
打开文件后,往下滑动直接找到第309行代码
daemonize yes
将no修改为yes,此意为允许在后台运行【注:不在后台运行的话在本服务器操作不了连接Redis】
保存退出启动Redis
2.4 启动Redis
redis-server redis.conf
此时不知道是否成功运行Redis,以查看进程的方式看出Redis是否运行
ps -ef | grep redis
2.5 连接Redis
redis-cli -h 127.0.0.1 -p 6379
redis连接时可携带参数,一个为本机地址 默认127.0.0.1 一个为端口号 默认6379
既然有默认值,可不填,可简写成:
redis-cli
连接成功!!
3.图形化Redis
图形化Redis安装包链接这里不在放,网上百度一搜一大堆
3.1图形化Redis连接准备
在图形化Redis连接之前,咱们需要到Redis.conf配置文件中配置
打开redis.conf文件
1.修改允许所有ip访问,默认只允许本机访问
Ctrl + F直接搜索关键字 bind
# 设置允许所有的ip连接该redis
bind * -::*
2.修改是否为保护模式
# 设置是否开启保护模式---yes开启 no表示关闭
protected-mode no
【注:防火墙在不关闭的情况下一定要放行你的6397端口或者你修改后的端口】
【注:在放行后一定要重启防火墙】
【注:防火墙重启后重启Redis】
重启Redis,首先直接杀掉Redis进程
pkill -9 redis
再次启动Redis
redis-server redis-conf
3.2 Redis图形化连接
这两处填写你安装Redis服务器的ip地址
另一个是端口号,默认6379,如果没有没有改变端口就不需要动
两处填写后直接点击保存
双击连接进入
连接成功!!!
【注:默认redis提供了16个库。如果想修改库的个数。】
【注:最好不要修改】
可以打开redis.conf配置文件Ctrl + F 关键字搜索 databases
# 修改redis数据库的个数--默认不改
databases 16
4.Redis常用命令
Redis命令大全:redis命令手册
4.1Redis对库操作命令
select 选择第几个库 【注:redis默认创建16个库,从0开始15结束,select为切换到第几个库,参数以库的下标形式,例:select 2 index】
flushdb 【注:清空当前库的所有内容】
flushall 【注:清空所有库的内容】
set key value 【注:为当前库添加数据,以键值对的方式,例 set name 张三】
4.2 关于Key命令
keys * 【注:查看当前库所有的key值】
keys n* 【注:查看当前库以n开头的key值,n可换】
del key 【注:删除指定的key,如果要跟多个值后面用空格隔开】
exists key 【注:查看指定的key是否存在,存在返回1,不存在返回0】
expire key seconds 【注:为指定的key设置过期时间,(过期过后key自动删除)单位时间:秒】
ttl key 【注:查看key的有效期,-1表示永久有效】
5.Redis所支持的数据类型
但是在公司中,我们常用 Strings字符串类型、Lists队列类型、Sets集合类型、Hashes哈希类型、Sorted sets有序集合类型
这五种数据类型
5.1 字符串类型(相关部分命令)
【注 : redis中它的value类型为字符串类型,该类型最多可以存放512M的内容】
set key value 【注:存储字符串类型数据,这里的key不允许重复,如果重复,新的值会覆盖旧的值】
get key 【注:根据key获取对应的value值】
mset key key key ...n 【注:存储多个key-value值】
mget key key key ...n 【注:获取多个key对应的value值】
setnx key value 【注:存储一个字符串数据,【注:如果存储的key已存在,则不会存入,反之会存入】】
incr key 【注:为指定的key递增,【注:只能递增整形类型】,此多用于点赞收藏关注等应用场景】
decr key 【注:为指定的key递减,【注:只能递减整形类型】】
decrby key number 【注:为指定的key递减指定的num数值】
5.2hash数据类型(相关部分命令)
【注:redis中它的value类型为hash数据类型。hash类型的特点: 它的value也是一个键值对的形式】
【注:hset key field value: 存放hash类型的数据】
hset key field value 【注:存放hash类型的数据】【注:hset 名称 key value key value key value ...n】
hget key field 【注:获取对应的field字段的值】
hgetall key 【注:获取对应的hash中所有的key value】
hkeys key 【注:获取对应hash中所有的key】
hvals key 【注:获取对应hash中所有的value】
5.3 List列表类型(相关部分命令)
【注:它的value值为一个列表队列类型,列表中的元素允许重复。 key对应的value类型为一个列表类型】
lpush key value value value .... n 【注:从左边存放列表数据】
lpop key 【注:从左边取出元素,一次只能取一个】
lrange key start end 【注:从下标几到几中间的元素全部取出,【注:lrange jk 0 -1 将jk列表集合中从下标0的元素到最后一个元素全部取出】【注:-1表示最后一个元素】】
5.4 set集合类型(相关部分命令)
【注:其是无序 且不能重复的数据】
sadd key value value value...n 【注:存放set的类型的元素,【注:sadd jk v1 v4 v2 v5 v6 v3 v6 v9 v7】】
smembers key 【注:获取指定key内所有的值】
srandmember key 【注:随机获取指定key内的一个值】
spop key 【注:随机删除指定key内的一个值】
sinter key key 【注:求多个集合的交际的值】
5.5 sorted set集合类型(部分命令)
【注:它和set的区别就是在添加元素时需要指定一个分数,该分数用来排序的】
zadd key 分数 value 分数 value 分数 value...n 【注:添加一个sorted set类型的元素,【注: zadd km 100 math 119 china 55 English】】
zrange key start end 【注:获取指定的key 范围中的值,从小到大排序】
zrevzrange key start end 【注:获取指定的key 范围中的值,从大到小排序】
【注:以上命令知识部分呈现在诸位眼前,更多可以到redis命令手册中查看】
以上便是Redis中的部分内容,如有漏缺请在下方留言告知,我会及时补充