redis和mysql内存数据库性能_Redis高性能内存数据库

(一)什么是Redis?

Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。与Memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis 是一个高性能的key-value数据库。Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。[1]

Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。

(二)Redis与Memcached的区别

u 持久化:

l Redis可以用来做缓存,也可以做存储;支持ADF和RDB两种持久化方式

l Memcached只能缓存数据

u 数据结构:

l Redis有丰富的数据类型:字符串、链表,Hash、集合,有序集合

l Memcached一般就是字符串和对象

(三)Redis的安装与配置

1.解压:tar -zxvf redis-3.0.5.tar.gz

2.make

3.make PREFIX=/root/training/redis install

4.cp ~/tools/redis-3.0.5/redis.conf /root/training/redis/etc/

Redis的核心配置文件:redis.conf

b804f52be10911cbe4beb71669a7b013.png

Redis的命令脚本:

redis-benchmark  性能测试工具

redis-check-aof  检查AOF日志

redis-check-dump 检查RDB日志

redis-cli        启动命令行客户端

redis-sentinel

redis-server     启动Redis服务

启动Redis:

./redis-server ../etc/redis6379.conf

./redis-server ../etc/redis6380.conf

这样就在6379和6380端口上,各自启动了一个Redis实例;也可以通过ps命令查看:

7b7d0d535fa6503924743ef716811639.png

启动Redis的客户端:redis-cli

l 默认连接6739端口,也可以通过-p指定连接的端口号:

1b12fed3c7cb59bea6d516634b2d059c.png

l ./redis-cli --help显式帮助信息

key操作redis 的key是以string储存的,redis对于key常用的操作指令如下:

1.select db_name使用指定数据库    select 1          # 使用数据库1

2.exits key_name检查指定的 key 是否存在

3.get key_name获取指定 key 的value

4.mget key1 [key2 ..]获取指定多个 key 的value,

5.randomkey随机获取一个 key

6.set key_name key_value设置 key-value

7.getset key_name key_value设置 key-value,并返回key的旧值

8.setnx key_name value只有在 key 不存在时,才设置key

9.mset key1 val1[ key1 val2...]同时设置多个 key-value

10.del key_name删除指定的 key

11.rename key_name new_key_name重命名指定key

12.type key_name返回指定 key 的value的类型

13.dump key_name 序列化指定 key,并返回该key序列化后的value

14.keys pattern查找所有符合给定 pattern 的key,支持使用*作为通配符;

15.keys a*      # 查找所有以 ‘a’ 开头的key

16.keys *        # 查找所有key

17.move key_name db_name将指定 key-value 移动到指定数据库

18.expire key_name seconds   pexpire key_name milliseconds

给指定key设置过期时间,单位分别为秒,毫秒

19.expireat key_name timestamp 设置指定的key在指定的UNIX时间戳过期

20.ttl key_name pttl key_name

返回 key 的TTL(Time to Live)生存时间,分别以 秒,毫秒为单位;

21.persist key_name移除指定 key 的过期时间,该key将持久保存

22.flushdb删除当前数据库的所有 key

23.flushall删除所有数据库的 key

其他操作可进入链接查看

数据类型

① 字符串

96163abe04f5059e343dd1fa45a39870.png

② 链表

2190f789e87e0424a4faa0c19ce7f8ec.png

③ Hash

be25c8c872cd502c325e36502ba65333.png

④ 无序集合

efe73e8b1cec79bb0d6f47ba1010f95a.png

⑤ 有序集合

7d09ffc202327a66a56aa2d2ccfd4948.png

⑥ Redis数据类型案例分析:网站统计用户登录的次数

1亿个用户,有经常登录的,也有不经常登录的

如何来记录用户的登录信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值