Redis讲解以及测试要点

 

一、redis 简介

redis适合放一些频繁使用,比较热的数据,因为是放在内存中,读写速度都非常快,一般会应用在下面一些场景,排行榜、计数器、消息队列推送、好友关注、粉丝。

首先要知道mysql存储在磁盘里,redis存储在内存里,redis既可以用来做持久存储,也可以做缓存,而目前大多数公司的存储都是mysql + redis,mysql作为主存储,redis作为辅助存储被用作缓存,加快访问读取的速度,提高性能。

官方定义:

Redis is an open source (BSD licensed), in-memory data structure storeused as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster. 

Redis与MySQL/Oracle的区别:

(1)存储介质:Redis存储在内存,但是可以将数据持久化到硬盘。MySQL/Oracle将数据持久化的存储到硬盘;

(2)数据库类型:Redis属于非关系型数据库;MySQL/Oracle关系型数据库

(3)存取效率:Redis直接在内存中存取数据效率高;MySQL/Oracle每次请求访问数据库时,都存在着I/O操作,如果反复频繁的访问数据库。第一:会在反复链接数据库上花费大量时间,从而导致运行效率过慢;第二:反复的访问数据库也会导致数据库的负载过高。

二、数据类型与常用操作

Redis支持五种数据类型:字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)

字符串(String): 增删改查 

复制代码
set key value del key set key newvalue get key
mset key1 value1 key2 value2 --批量增加
复制代码

哈希(Hash):  key {filed1: value, filed2:vaule.....,fieldN:value}

复制代码
hset key field_1 value1 -- 增 hmset key field_1 value1 filed_2 value2 --批量增 hdel key filed-- 删 hset key field newValue -- 改 hget key field  --查某一field值 hvals filed    -- 查key对应的field-values
hlen key --计算field个数
hkeys --获取所有field
复制代码

 

  列表(list) 

复制代码
rpush key value [value ...]  --右插 lpush key value [value ...]  -- 左插 linsert key BEFORE|AFTER pivot value  lrange key start stop lindex key index llen key lpop key -- 左弹 rpop key -- 右弹 lset key index value  --修改下标index的元素值
复制代码

集合(sets) (集合内不允许相同的元素)

复制代码
-- 集合内元素操作
sadd key element [element ...] --增
srem key element [element ...] --删
scard key --计算元素个数
sismember key element --判断元素是否在集合中
spop key
smembers key --获取所有元素
-- 集合间元素操作
sinter key [key ...] --交集
sunion key [
key ...] -- 并集
sdiff key [key ...] --差集
-- 将结果保存
sinterstore destination key [key ...]
suionstore destination key [key ...]
sdiffstore destination key [key ...]
复制代码

 

 (有序集合) 参考sets

常用操作

复制代码
ttl     -1  键没设置过期时间/永久有效     -2  键不存在     >0  键剩余的过期时间  type  --查看键的类型  flushdb/flushall  --删除数据  info memory  --查看内存信息

select db --选择库

Expire -- 设置过期时间
复制代码

 

三、数据持久化

为什么数据持久化?

由于redis的强大性能很大程度上是因为所有数据都是存储在内存中,然而当出现服务器宕机、redis重启等特殊场景,所有存储在内存中的数据将会丢失,这是无法容忍的事情,所以必须将内存数据持久化。例如:将redis作为数据库使用的;将redis作为缓存服务器使用等场景。

持久化存在的方式?

目前持久化存在两种方式:RDB方式和AOF方式。

RDB方式

RDB持久化是把当前进程数据生成快照保存到硬盘的过程, 触发RDB持久化过程分为手动触发和自动触发。一般存在以下情况会对数据进行快照

复制代码
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信