Redis

1.简述

基于键值型的NoSQL数据库

键值型,value支持多种不同数据类型

单线程,每个命令具有源自型

低延迟,速度快

支持数据持久化

支持主从,分片集群

2.linux部署redis

支持多语言客户端

1)安装源码软件

yum -y install gcc

2)下载redis包

wget https://repo.huaweicloud.com/redis/redis-4.0.8.tar.gz

Redis_第1张图片

3)解压并进入redis目录

tar -zvxf redis-4.0.8.tar.gz
cd redis-4.0.8/
ls

4)源码编译安装

make && make install

Redis_第2张图片

5)进入utlis目录初始化redis

cd utils/
./install_server.sh

输完以上命令会出现输入,过程直接默认回车即可。安装完成后 如下图

Redis_第3张图片

6)查看服务状态

/etc/init.d/redis_6379 status

7)查看监听的端口

netstat -antupl |grep :6379

8)查看进程

ps  -C redis-server

9)停止服务

/etc/init.d/redis_6379 stop

10)连接redis并进入redis

/etc/init.d/redis_6379 start
redis-cli

11)使用ping命令测试链接状态,出现PONG说明服务正常

ping

Redis_第4张图片

12)修改密码

vim redis.conf

添加requirepass 密码

13)设置在后台运行redis

打开并编辑redis.conf,把daemonize设置为yes

设置好后保存并退出。

在重启前最好先将redis服务停掉

ps -ef | grep redis 找到redis进程pid

kill -9 redis pid

重新启动redis:

./redis-server /usr/local/redis-3.2.8/redis.conf

redis.conf配置文件中daemonize守护线程,默认是NO,daemonize是用来指定redis是否要用守护线程的方式启动。

14)登录

redis-cli -a 123 //密码登录

也可以进入redis-cli

命令行输入AUTH 密码

如果windows主机要连接linux中的主机将redis.conf中的内容bind 127.0.0.1注释掉并将配置文件的 protected-mode yes 改为 protected-mode no,并关闭防火墙

关闭防火墙

systemctl status firewalld 查看防火墙状态

systemctl start firewalld 开启防火墙 (service firewalld start)

systemctl stop firewalld 关闭防火墙

systemctl disable firewalld 禁止开机启动防火墙

3.命令练习

1、通用命令

KEYS 查看所有符合模板的key

DEL 删除指定的key

EXISTS 判断key是否存在

EXPIRE 给key设置一个有效期

TTL 查看key的有效期

Redis_第5张图片

这里的-2 代表key值已过期,-1表示key值永久,不会过期

2、String的常见命令

SET 添加,或者修改一个已经存在的String类型的键值对

GET 根据key值获取String类型的value值

MSET 批量添加多个String类型的键值对

MGET 根据key获取多个String类型的值

INCR 设置指定的整型的key自增1

INCRBY 设置指定的整型的key指定步长自增

INCRBYFLOAT 设置指定的浮点型的key指定步长自增

SETNX 如果key存在则不添加,否则则增添指定的键值对

SETEX SET与EXPIRE 的结合,在创建键值队是设置过期时间

Redis_第6张图片

注意SETEX这个命令,后跟的为 key expiretime value

3、Hash类型

Redis_第7张图片

HSET key field value 增加或者修改hash类型key的field的值

HGET key field 获取一个hash类型的key的field的值

HMSET 批量增加多个hash类型的key的field的值

HMGET 获取多个hash类型的key的field的值

HGETALL 获取一个hash类型的key中所有的field 和value

HKEYS 获取hash类型中指定key中的所有key

HVALS 获取hash类型中key中所有的value值

HINCRBY 让一个hash类的的key中某个field中的value以指定步长自增

HSETNX 如果hash类型的key字段的field存在则不会添加,否则将添加这个field的值

Redis_第8张图片

3、List类型

类似为数据结构的双端队列

LPUSH key value 从队列的左边插入键值对(一个或多个)

LPOP key 移除并返回列表左侧第一个元素,没有则返回nil

RPUSH key value 从队列的右边插入键值对(一个或多个)

RPOP key 移除并返回列表右侧第一个元素,没有则返回nil

LRANGE key star end返回指定角标范围内的所有元素

BLPOP和BRPOP 与LPOP与BPOP类似,只不过没有元素则进行等待

Redis_第9张图片

4、Set类型

SADD key member 向set中添加一个或者多个元素

SREM key member 向set中移除指定key的元素

SCARD key 返回set中key元素的个数

SISMRMBER key member 判断一个元素是否存在set的key中

SMEMBERS key 获取set中key所有的元素

SINTER key1 key2 交集

SDIFF key1 key2 差集(k1 相较于k2 所特有的)

SUNION key1 key2 并集

Redis_第10张图片

5、SortedSet类型

可排序的set集合,默认是升序的,若要降序则在命令的Z后面添加REV即可

ZADD key score member 添加一个或者多个元素,如果已存在则更新

ZREM key member 删除指定元素

ZSCORE key member 获取指定元素的score值

ZRANK key member 获取指定元素的排名

ZCARD key 获取元素个数

ZCOUNT key min max 统计score值在给定范围内所有元素的个数

ZINCRBY key increment member设置元素以指定步长自增

ZRANGE key min max 按照score排序后,获取指定范围内的元素

ZRANGEBYSCORE key min max 按照score排序后,获取score范围内的元素

ZDIFF 差集

ZINTER 交集

ZUNION 并集

Redis_第11张图片

Redis_第12张图片

注意这里的ZCOUNT 范围是score的范围,默认排序为升序,而Z后加REV则改为升序

Redis_第13张图片

你可能感兴趣的:(redis,数据库,缓存)