Redis快速上手版

1、什么是Redis

        Redis全称Remote Dictionary Server(即远程字典服务) ,它是一个基于内存实现的键值型非关系数据库;Redis官网(Redis - The Real-time Data PlatformDevelopers love Redis. Unlock the full potential of the Redis database with Redis Enterprise and start building blazing fast apps.icon-default.png?t=N7T8https://redis.io/

2、特点以及优势

        特点:

  • Redis 不仅可以将数据完全保存在内存中,还可以通过磁盘实现数据的持久存储

  • Redis 支持丰富的数据类型,包括 string、list、set、zset、hash 等多种数据类型,因此它也被称为“数据结构服务器”;

  • Redis 支持主从同步,即 master-slave 主从复制模式。数据可以从主服务器向任意数量的从服务器上同步,有效地保证数据的安全性;

  • Redis 支持多种编程语言,包括 C、C++、Python、Java、PHP、Ruby、Lua 等语言。

        优势:

  • 性能极高:Redis 基于内存实现数据存储,它的读取速度是 110000次/s,写速度是 81000次/s;

  • 多用途工具: Redis 有很多的用途,比如可以用作缓存、消息队列、搭建 Redis 集群等;

  • 命令提示功能:Redis 客户端拥有强大的命令提示功能,使用起来非常的方便,降低了学习门槛;

  • 可移植性:Redis 使用用标准 C语言编写的,能够在大多数操作系统上运行,比如 Linux,Mac,Solaris 等。

        应用场景:

  • 缓存:合理的使用 缓存 能够明显加快访问的速度,同时降低数据源的压力。这也是 Redis 最常用的功能。Redis 提供了 键值过期时间(EXPIRE key seconds)设置,并且也提供了灵活控制 最大内存 内存溢出 后的 淘汰策略。

  • 排行榜:每个网站都有自己的排行榜,例如按照 热度排名 的排行榜,发布时间 的排行榜,答题排行榜 等等。Redis 提供了 列表(list)和 有序集合(zset)数据结构,合理的使用这些数据结构,可以很方便的构建各种排行榜系统。

  • 计数器:计数器在网站应用中非常重要。例如:点赞数*加 1,浏览数 *加 1。还有常用的 限流操作,限制每个用户每秒 访问系统的次数 等等。Redis 支持 计数功能(INCR key),而且计数的 性能 也非常好,计数的同时也可以设置 超时时间,这样就可以实现限流。

  • 社交网络:赞/踩,粉丝,共同好友/喜好,推送,下拉刷新等是社交网站必备的功能。由于社交网站 访问量通常比较大,而且传统的数据库 不太适合保存这类数据,Redis 提供的 数据结构 可以相对比较容易实现这些功能。

  • 消息队列Redis 提供的 发布订阅(PUB/SUB)和阻塞队列 的功能,虽然和专业的消息队列(RocketMQ/RabbitMQ,MQ全称:Message Queue)比,还不够强大,但对于一般的消息队列功能基本满足

3、安装与配置(Linux版)

 注:windows安装文档路径:Windows 下安装和配置 Redis (图文教程)-阿里云开发者社区Windows 下安装和配置 Redis (图文教程)icon-default.png?t=N7T8https://developer.aliyun.com/article/1395346

   3.1、下载Redis.tar版本(官网:Redis - The Real-time Data Platform

   3.2、上传解压并安装gcc

# 切换目录
cd /usr/local/mytools
# 上传
rz  redis-6.2.1.tar.gz
# 解压
tar -zxf redis-6.2.1.tar.gz -C /usr/local


#安装gcc
yum -y install gcc

3.3、编译和查看安装目录

#需要提前切换到redis解压好的目录下
make && make install
#如下附图

        

#查看安装目录
cd /usr/local/bin
#查看下面文件目录
ll

目录介绍:

  • redis-benchmark:性能测试工具,可以在自己本子允许,看看自己本子性能如何

  • redis-check-aof:修复有问题的AOF文件

  • redis-check-dump:修复有问题的dump.rdb文件

  • redis-sentinel:redis集群使用

  • redis-server:redis服务器启动命令

  • redis-cli:客户端,操作入口

3.4、后端启动跟测试

使用vi或者vim命令修改/usr/local/redis-6.2.1/redis.conf中的配置,将后台启动设置daemonize改为yes,如下:

启动(注非常重要)

#需要在/usr/local/bin目录下执行如下语句,启动redis服务(版本号不跟我一致的不要直接扣)
redis-server /usr/local/redis-6.2.1/redis.conf

查看进程

ps -ef | grep redis

关闭进程

# 方式一:
kill -9 pid
# 方式二:
redis-cli shutdown

执行 redis-cli 即可进入redis命令窗口,然后就可以执行redis命令了。

redis-cli

测试

[root@localhost bin]# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> exit

3.5、系统服务自启动配置

# 切换到指定目录
cd /usr/lib/systemd/system/
#编辑指定文件
vim redis.service
#在文件中输入如下代码
[Unit]
Description=Redis
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
#修改redis-server和redis.conf的路径
ExecStart=/填你的文件路径/redis-5.0.0/src/redis-server /填你的文件路径/redis-5.0.0/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID 
ExecStop=/bin/kill -s QUIT $MAINPID 
PrivateTmp=true

[Install]
WantedBy=multi-user.target
# 重载服务
systemctl daemon-reload
# 自启动服务
systemctl enable redis
# 重启服务	
systemctl restart redis

vim编辑的文档一定要在命令模式下保存wq!!!!!

vim编辑的文档一定要在命令模式下保存wq!!!!!

vim编辑的文档一定要在命令模式下保存wq!!!!!

4、Redis的数据类型

Redis默认端口6379,默认16个数据库,类似数组的下标从0开始,初始默认使用0号。可使用select命令切换数据库:

select index

  • String(字符串)

String 是 Redis 最基本的数据类型。字符串是一组字节,在 Redis 数据库中,字符串具有二进制安全(binary safe)特性,这意味着它的长度是已知的,不由任何其他终止字符决定的,一个字符串类型的值最多能够存储 512 MB 的内容。

  • Hash(哈希表)

Redis hash是一个键值对集合。Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。类似于java里面的Map<String,Object>

  • List(列表)

Redis List 中的元素是字符串类型,其中的元素按照插入顺序进行排列,允许重复插入,最多可插入的元素个数为 2^32 -1 个(大约40亿个),可以添加一个元素到列表的头部(左边)或者尾部(右边)。

  • Set(集合)

Redis Set 是一个字符串类型元素构成的无序集合。在 Redis 中,集合是通过哈希映射表实现的,所以无论是添加元素、删除元素,亦或是查找元素,它们的时间复杂度都为 O(1)。

  • Zset(有序集合)

Redis zset 是一个字符串类型元素构成的有序集合,集合中的元素不仅具有唯一性,而且每个元素还会关联一 个 double 类型的分数,该分数允许重复。Redis 正是通过这个分数来为集合中的成员排序。

5、Redis相关操作

        5.1、String

set key          #保存
get key          #获取
type key         #查看类型
keys *或keys key #查看所有或者指定的key

        5.2、Hash

hset key field1 value1 [field2 value2]  #同时将多个field-value设置到哈希表key中
hget key field                          #获取指定的字段值
hdel key field                          #删除指定的字段值
hgetall key                             #查询指定key的所有字段
hexists key field                       #查询指定key中的字段是否存在
hlen key                                #获取指定key中的长度

        5.3、list

lpush key value1 value2 value3          #将一个或多个值插入到列表头部
llen key                                #获取列表的长度
lindex key index                        #根据索引获取列表中的元素
lrange key start sop                    #查看指定范围内的元素

        5.4、Set

sadd key value1 [value2]                #向集合添加一个或多个元素
scard key                               #获取集合中的元素数量
sscan key cursor [MATCH pattern] [COUNT count]   #迭代集合中的元素
exists key                              #是否存在

  • 23
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值