2020-09-01 Redis 2

Redis

Remote Dictionary Server 远程服务字典

是一个开源的ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型,key-value数据库、并提供多种语言的API。redis会周期性的把更新的数据写入磁盘或者把修改的写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。免费和开源!是当下最热门的NoSQL技术之一,也被人们称之为结构化数据库!

Redis用处

  1. 内存存储,持久化,内存中是断电即失,所以说持久化很重要(rdb,aof)
  2. 效率高,可以用于高速缓存
  3. 发布订阅系统
  4. 地图信息分析
  5. 计时器,计数器(微信微博浏览量)

特性

  1. 多样的数据类型
  2. 持久化
  3. 事务
  4. 集群

Windows安装

1、下载压缩包

下载地址:https://github.com/dmajkic/redis/releases

2、下载完毕得到压缩包
3、解压到自己电脑上的环境目录下就可以
4、开启Redis 双击运行服务
在这里插入图片描述
5、使用redis客户端连接redis (服务不要关闭)
输入ping 显示 pong 代表连接成功

Linux安装

1、下载安装包
2、解压Redis安装包
3、进入解压后的文件,可以看到redis配置文件 redis.conf
4、基本的环境安装

yum install gcc-c++

make

make install

5、redis的默认安装路径 /usr/local/bin
6、将redis配置文件。拷贝到
7、redis默认不是后台七点多额,修改配置文件!

daemonize yes

在这里插入图片描述
8、启动Redis服务!
在这里插入图片描述
9、使用redis-cli进行连接测试
在这里插入图片描述
10、查看redis进程是否开启!
再开一个链接
在这里插入图片描述
11、如何关闭redis服务? shut down
12、再次查看进程是否存在
在这里插入图片描述

# 【shell】启动redis服务
[root@192 bin]# cd /usr/local/bin
[root@192 bin]# redis-server /opt/redis-5.0.7/redis.conf
# redis客户端连接===> 观察地址的变化,如果连接ok,是直接连上的,redis默认端口号 6379
[root@192 bin]# redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set k1 helloworld
OK
127.0.0.1:6379> get k1
"helloworld"
# 【shell】ps显示系统当前进程信息
[root@192 myredis]# ps -ef|grep redis
root 16005 1 0 04:45 ? 00:00:00 redis-server
127.0.0.1:6379
root 16031 15692 0 04:47 pts/0 00:00:00 redis-cli -p 6379
root 16107 16076 0 04:51 pts/2 00:00:00 grep --color=auto redis
# 【redis】关闭连接
127.0.0.1:6379> shutdown
not connected> exit

测试性能

redis-benchmark是一个压力测试工具
官方自带的性能测试工具
在这里插入图片描述
在这里插入图片描述

redis-benchmark -h localhost -p 6379 -c 100 -n 100000
# 测试一:100个并发连接,100000个请求,检测host为localhost 端口为6379的redis服务器性
能
redis-benchmark -h localhost -p 6379 -c 100 -n 100000
# 测试出来的所有命令只举例一个!
====== SET ======
100000 requests completed in 1.88 seconds # 对集合写入测试
100 parallel clients # 每次请求有100个并发客户端
3 bytes payload # 每次写入3个字节的数据,有效载荷
keep alive: 1 # 保持一个连接,一台服务器来处理这些请求
17.05% <= 1 milliseconds
97.35% <= 2 milliseconds
99.97% <= 3 milliseconds
100.00% <= 3 milliseconds # 所有请求在 3 毫秒内完成
53248.14 requests per second # 每秒处理 53248.14 次请求

基础知识

redis默认有16个数据库
在这里插入图片描述
默认使用第0个 可以使用 select 切换数据库
查看DB大小 DBSIZE
查看所有的key keys *
Flushdb:清空当前库
Flushall:清空全部的库

127.0.0.1:6379> DBSIZE
(integer) 5
127.0.0.1:6379> FLUSHDB
OK
127.0.0.1:6379> DBSIZE
(integer) 0

Redis是单线程的!

Redis是将所有的数据全部放在内存中的,所以使用单线程去操作效率就是最高的!

Rediskey

Redis是一个开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。它支持数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,带有半径查询和流的地理空间索引。Redis具有内置的复制,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster自动分区提供了高可用性。

  • String (字符串类型)
    String是redis最基本的类型,你可以理解成Memcached一模一样的类型,一个key对应一个value。
    String类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象。
    String类型是redis最基本的数据类型,一个redis中字符串value最多可以是512M。
    Hash(哈希,类似 Java里的Map)
    Redis hash 是一个键值对集合。
    Redis hash 是一个String类型的field和value的映射表,hash特别适合用于存储对象。
    类似Java里面的Map<String,Object>
  • List(列表)
    Redis列表是简单的字符串列表,按照插入顺序排序,你可以添加一个元素到列表的头部(左边)或者尾
    部(右边)。
    它的底层实际是个链表 !
  • Set(集合)
    Redis的Set是String类型的无序集合,它是通过HashTable实现的 !
  • Zset(sorted set:有序集合)
    Redis zset 和 set 一样,也是String类型元素的集合,且不允许重复的成员。
    不同的是每个元素都会关联一个double类型的分数。
    Redis正是通过分数来为集合中的成员进行从小到大的排序,zset的成员是唯一的,但是分数(Score)
    却可以重复。
# keys * 查看所有的key
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set name pengyuyan
OK
127.0.0.1:6379> keys *
1) "name"
# exists key 的名字,判断某个key是否存在
127.0.0.1:6379> EXISTS name
(integer) 1
127.0.0.1:6379> EXISTS name1
(integer) 0
# move key db ---> 当前库就没有了,被移除了
127.0.0.1:6379> move name 1
(integer) 1
127.0.0.1:6379> keys *
(empty list or set)
# expire key 秒钟:为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删
除。
# ttl key 查看还有多少秒过期,-1 表示永不过期,-2 表示已过期
127.0.0.1:6379> set name qinjiang
OK
127.0.0.1:6379> EXPIRE name 10
(integer) 1
127.0.0.1:6379> ttl name
(integer) 4
127.0.0.1:6379> ttl name
(integer) 3
127.0.0.1:6379> ttl name
(integer) 2
127.0.0.1:6379> ttl name
(integer) 1
127.0.0.1:6379> ttl name
(integer) -2
127.0.0.1:6379> keys *
(empty list or set)
# type key 查看你的key是什么类型
127.0.0.1:6379> set name qinjiang
OK
127.0.0.1:6379> get name
"pengyuyan"
127.0.0.1:6379> type name
string
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值