• 生活的道路一旦选定,就要勇敢地走到底,决不回头。——左拉
  • 坚强的信心,能使平凡的人做出惊人的事业。——马尔顿
  • 人不可有傲气,但不可无傲骨。 --徐悲鸿
  • 古之立大志者,不惟有超世之才,亦必有坚韧不拔之志。 --苏轼
  • 时间像海绵里的水,只要你愿意挤,总还是有的。 --鲁迅

Redis入门

Redis zkinogg 2年前 (2020-08-03) 194次浏览 0个评论

一、Redis简介

1.redis是什么

Redis是一款开源的,ANSI C语言编写的,高级键值(key-value)缓存和支持永久存储NoSQL数据库产品。
Redis采用内存(In-Memory)数据集(DataSet) 。
支持多种数据类型。
运行于大多数POSIX系统,如Linux、*BSD、OS X等。

redis就是非关系型数据库的一种,存储方式是:key:value

2.redis的作用

1.会话保持(键过期)
2.缓存(放在数据库前面,memcache,mongodb)
3.消息队列(kafka)

3.为什么要用Redis

1.redis功能全面
2.redis企业使用率高

4.redis优点

1.高速读写
    将所有数据存储在内存,单线程服务,使用C语言
2.部署简单,使用稳定
3.数据类型丰富
    String: 字符串类型
    Hash: 哈希类型
    List: 列表类型
    Set: 集合类型
    Sorted set: 顺序集合类型
4.支持持久化
    将内存的数据写入磁盘
5.多种内存分配及回收策略
6.支持事物、锁
7.消息队列、消息订阅
8.支持高可用
    哨兵模式
9.支持分布式分片集群
10.支持的客户端语言很多
    java,php,python,nodejs,C语言

5.redis帮助

官方网站:https://redis.io/
下载网站:http://download.redis.io/releases/
帮助网站:http://redisdoc.com/

6.缓存服务对比

#Memcached:
1.优点:高性能读写、单一数据类型、支持客户端式分布式集群、一致性hash多核结构、多线程读写性能高。
2.缺点:无持久化、节点故障可能出现缓存穿透、分布式需要客户端实现、跨机房数据同步困难、架构扩容复杂度高

#Redis:
1.优点:高性能读写、多数据类型支持、数据持久化、高可用架构、支持自定义虚拟内存、支持分布式分片集群、单线程读写性能极高
2.缺点:多线程读写较Memcached慢

#Tair:
1.优点:高性能读写、支持三种存储引擎(ddb、rdb、ldb)、支持高可用、支持分布式分片集群、支撑了几乎所有淘宝业务的缓存。
2.缺点:单机情况下,读写性能较其他两种产品较慢

#对比结论:
1.Memcached:多核的缓存服务,更加适合于多用户并发访问次数(访问次数较少的应用场景)。
2.Redis:单核缓存服务,在单节点情况下,更加适合少量用户,多次访问的应用场景。

二、Redis使用场景

1.缓存
    放在数据库前面
2.会话保持
    登录cookie、session
    折扣券,代金券
3.排行榜
4.计数器
    论坛帖子点赞点踩
5.社交软件
    QQ共同好友,微博共同爱好
6.消息队列
    结合ELK做日志收集

三、redis搭建

1.下载软件包

[root@db01 ~]# rz redis-3.2.12.tar.gz
或者
[root@db01 ~]# wget http://download.redis.io/releases/redis-3.2.12.tar.gz

2.安装依赖

[root@db01 ~]# yum install -y gcc gcc-c++

3.解压移动

[root@db01 ~]# tar xf redis-3.2.12.tar.gz 
[root@db01 ~]# mv redis-3.2.12 /usr/local/
[root@db01 ~]# ln -s /usr/local/redis-3.2.12 /usr/local/redis

4.安装

[root@db01 ~]# cd /usr/local/redis
[root@db01 redis]# make

5.启动redis

[root@db01 redis]# ./src/redis-server &

[root@db01 redis]# netstat -lntp  
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      11759/./src/redis-s

6.连接redis

#配置环境变量
[root@db01 redis]# vim /etc/profile.d/redis.sh
export PATH=/usr/local/redis/src:$PATH

#连接
[root@db01 redis]# redis-cli 
127.0.0.1:6379> 

7.关闭redis

[root@db01 redis]# redis-cli shutdown
11759:M 03 Aug 10:20:20.535 # User requested shutdown...
11759:M 03 Aug 10:20:20.535 * Saving the final RDB snapshot before exiting.
11759:M 03 Aug 10:20:20.546 * DB saved on disk
11759:M 03 Aug 10:20:20.546 # Redis is now ready to exit, bye bye...
[1]+  Done                    ./src/redis-server


[root@db01 redis]# redis-cli 
127.0.0.1:6379> shutdown
11851:M 03 Aug 10:20:59.580 # User requested shutdown...
11851:M 03 Aug 10:20:59.580 * Saving the final RDB snapshot before exiting.
11851:M 03 Aug 10:20:59.584 * DB saved on disk
11851:M 03 Aug 10:20:59.584 # Redis is now ready to exit, bye bye...
not connected> quit
[1]+  Done                    ./src/redis-server

四、redis配置文件

1.配置

#默认的配置文件
[root@db01 redis]# pwd
/usr/local/redis
[root@db01 redis]# ll
-rw-rw-r--  1 root root 46695 Jun 13  2018 redis.conf

#创建reids配置文件目录
[root@db01 redis]# mkdir /service/redis/6379 -p

#编写配置文件
[root@db01 redis]# vim /service/redis/6379/redis.conf
bind 172.16.1.51 127.0.0.1                          #监听地址
port 6379                                          #端口
daemonize no                                       #后台启动
pidfile /service/redis/6379/redis_6379.pid            #指定pid文件
loglevel notice                                     #指定日志级别
logfile /service/redis/6379/redis_6379.log            #指定日志文件

2.指定配置文件启动和停止

[root@db01 redis]# redis-server /service/redis/6379/redis.conf
# 没有密码时,停止命令为
[root@db01 redis]# redis-cli shutdown
# 有密码时,停止命令为
[root@db01 redis]# redis-cli -a 密码 shutdown

五、redis操作

1.基本操作

1.连接redis
    [root@db01 redis]# redis-cli 
    127.0.0.1:6379>
2.查看所有数据
    127.0.0.1:6379> keys *
    (empty list or set)
    #查看时注意不要轻易使用,如想查看数据,先查看数据量DBSIZE
    127.0.0.1:6379> DBSIZE
    (integer) 2018041
3.添加数据
    127.0.0.1:6379> set k1 v1
    OK
4.查看数据
    127.0.0.1:6379> keys *
    1) "k1"
    127.0.0.1:6379> get k1
    "v1"
5.删除数据
    127.0.0.1:6379> keys *
    1) "k1"
    127.0.0.1:6379> DEL k1
    (integer) 1
    127.0.0.1:6379> keys *
    (empty list or set)
6.修改数据
    127.0.0.1:6379> set k1 v1
    OK
    127.0.0.1:6379> set k1 v11111
    OK
    127.0.0.1:6379> get k1
    "v11111"
7.追加数据
    127.0.0.1:6379> APPEND k1 000000
    (integer) 12
    127.0.0.1:6379> get k1
    "v11111000000"
8.切换库
    127.0.0.1:6379> SELECT 1
    OK
    127.0.0.1:6379[1]> SELECT 2
    OK
    127.0.0.1:6379[2]> SELECT 3
    OK
    127.0.0.1:6379> SELECT 16
    (error) ERR invalid DB index

2.密码的设置

1.配置文件配置密码
    [root@db01 redis]# vim redis.conf 
    requirepass 123
2.使用密码连接
    [root@db01 redis]# redis-cli -a 123
3.登陆后输入密码
    [root@db01 redis]# redis-cli
    127.0.0.1:6379> AUTH 123
    OK
    127.0.0.1:6379> DBSIZE
    (integer) 2018041
4.redis连接后获取密码
    127.0.0.1:6379> CONFIG GET requirepass
    1) "requirepass"
    2) "123"
5.redis连接后修改密码
    127.0.0.1:6379> CONFIG set requirepass 234
    OK
    [root@db01 redis]# redis-cli
    127.0.0.1:6379> DBSIZE
    (error) NOAUTH Authentication required.
    127.0.0.1:6379> auth 123
    (error) ERR invalid password
    127.0.0.1:6379> auth 234
    OK

3.通用操纵

1.判断key是否存在
    127.0.0.1:6379> EXISTS k1
    (integer) 1                     #存在则返回1
    127.0.0.1:6379> EXISTS k2
    (integer) 0                     #不存在则返回0
2.修改key的名字
    127.0.0.1:6379> KEYS *
    1) "k1"
    127.0.0.1:6379> RENAME k1 k100
    OK
    127.0.0.1:6379> KEYS *
    1) "k100"
3.查看数据类型
    127.0.0.1:6379> TYPE k100
    string
4.设置生存时间
    #以秒为单位
    127.0.0.1:6379> EXPIRE qiudao 10
    (integer) 1
    #以毫秒为单位
    127.0.0.1:6379> PEXPIRE k100 10000
    (integer) 1
5.查看生存时间
    127.0.0.1:6379> TTL k100
    (integer) 1                 #正整数生存时间倒计时
    127.0.0.1:6379> TTL k100
    (integer) -1                #-1代表没有设置生存时间
    127.0.0.1:6379> TTL k100
    (integer) -2                #代表设置过生存时间已删除,已过期
6.取消生存时间
    127.0.0.1:6379> TTL qiudao
    (integer) 93
    127.0.0.1:6379> PERSIST qiudao
    (integer) 1
    127.0.0.1:6379> TTL qiudao
    (integer) -1


极客公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Redis入门
喜欢 (0)
[17551054905]
分享 (0)

您必须 登录 才能发表评论!