Redis

1.Redis知识补充(NOSQL)

1.1什么是NOSQL

NOSQL(全称 No Only SQL)意为不仅仅只有SQL,其是对所有非关系型数据库的统称

1.2nosql和rdbms的区别

RDBMS

  • - 高度组织化结构化数据:
  • - 结构化查询语言(SQL) 支持sql语句 select * from t_user;
  • - 数据和关系都存储在单独的表中。---记录和关系
  • - 数据操纵语言DML [增删改],数据定义语言 DDL [表结构的修改]
  • - 严格的一致性
  • - 基础事务 【mysql支持事务--ACID】

NoSQL

  • - 代表着不仅仅是SQL
  • - 没有声明性查询语言 [不支持select 语句]
  • - 键 - 值对存储,【类似于map】
  • - 不支持事务的一致性
  • - 非结构化和不可预知的数据。 可以是很多类型。

1.3NOSQL的产品

  • Redis
  • mongodb
  • hbase

1.4什么是Redis

其是一款使用C语言编写的软件,而且它以key-value形式存储,它的计算在内存中,而它的存储在磁盘中。 它提供了多种语言的API.

2.安装Redis

下载Redis安装包

https://redis.io/download/

2.1安装C语言插件

由于Redis是由c语言开发,要想使用就必须配置C语言环境

yum  install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

2.2 编译安装Redis软件

安装包下好后将拉入到指定的目录中,这里依然放入 /usr/local/app

然后对其进行解压

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

发现已经成功运行,且默认端口为6379

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中的部分内容,如有漏缺请在下方留言告知,我会及时补充 

posted @ 2023-08-28 21:06  九极致之术  阅读(18)  评论(0编辑  收藏  举报