一、Redis介绍

1、介绍

  通常,在系统中,我们会把数据交由数据库来存储,但传统的数据库增删查改的性能较差,且比较复杂。根据 80/20 法则,百分之八十的业务访问集中在百分之二十的数据上。是否可以有一个存在于物理内存中的数据中间层,来缓存一些常用的数据,解决传统数据库数据读写性能问题。常用的数据都存储在内存中,读写性能非常可观。

  Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型的高性能的key-value数据库。它支持存储的value类型包括 string(字符串)、list(链表)、set(集合)、zset(sorted set有序集合)和 hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

2、redis 优势

  > redis数据库完全在内存中,使用磁盘仅用于持久性。不仅可用作缓存,更可为一种key-value存储,他完全可替代后端的存储服务,但需要做好备份。

  > Redis可以将数据复制到任意数量的从服务器。

  > Redis的速度非常快,每秒能执行约11万集合,每秒约81000+条记录。

  > 支持丰富的数据类型,Redis支持大多数开发人员已经知道的像列表,集合,有序集合,散列数据类型。这使得它非常容易解决各种各样的问题,因为我们知道哪些问题是可以通过它的数据类型处理更好。

  > 所有Redis操作是原子的,这保证了如果两个客户端同时访问的Redis服务器将获得更新后的值。

  > Redis是一个多功能实用的工具,可以在多个用例如缓存,消息,队列使用(Redis原生支持发布/订阅);任何短暂的数据,应用程序,如Web应用程序会话,网页命中计数,热点排行等。就看什么样的业务场景以及你怎么去设计使用好它的数据结构。

二、Redis安装

1、Linux下安装

1、安装

首先可以从redis官网找一个稳定版下载:https://redis.io/download

# cd /usr/local

# wget http://download.redis.io/releases/redis-4.0.2.tar.gz

# tar zxf redis-4.0.2.tar.gz

# cd redis-4.0.2

# #直接make则安装到src目录下,可以通过如下方式安装到指定目录
# make PREFIX=/usr/local/redis install

安装完后,在/usr/local/redis/bin下可以看到如下文件,同时在redis-4.0.2/src/也是存在的。

各个文件如下:

redis-benchmark  Redis性能测试工具

redis-check-aof  检查aof日志工具

redis-check-rdb  检查rdb日志工具

redis-cli  连接用的客户端

redis-sentinel  Redis集群的管理工具 监控多个master-slave集群,发现master宕机后能进行自动切换

redis-server  Redis服务程序

启动服务:

# cd /usr/local/redis/bin

# ./redis-server

# #上面是以默认的配置启动服务,可以根据指定的配置文件启动服务
# #首先将配置文件复制到安装目录下
# cp /usr/local/src/redis-4.0.2/redis.conf /usr/local/redis/
# #指定配置文件启动
# ./redis-server ../redis-conf

这样就算安装成功了:默认端口可以看到使用的是6379.

会发现启动的redis一致占据着终端,修改redis.conf,让redis以后台进程的形式运行。

# vim redis.conf

# #修改 daemonize 为 yes 即可,然后重新启动,就不会占据终端了。

测试:./redis-cli 启动客户端

2、注册成服务  

将redis注册成系统服务,不然每次都要到安装目录下手动启动服务.

如果服务开着,首先把服务关掉:./redis-cli shutdown

首先将redis目录下的初始化脚本拷贝到/etc/rc.d/init.d目录,同时重命名为redis

# cp /usr/local/src/redis-4.0.2/utils/redis_init_script /etc/rc.d/init.d/redis

修改redis脚本

  a) 第二行增加如下内容:# chkconfig: 2345 80 90

  

  b) 原脚本EXEC和CLIEXEC的值改到安装目录下.

  

  c) 在$EXEC $CONF 后边加一个&,表示让redis作为后台服务启动,否则该服务会独占输入屏。

  

  d) 可以看到在/etc/init.d/redis文件中有这么一行:CONF="/etc/redis/${REDISPORT}.conf",启动时的默认配置文件为/etc/redis/6379.conf。于是将redis配置文件拷贝到/etc/redis/下,并命名为 6379.conf 。

  

# mkdir /etc/redis

# cp /usr/local/src/redis-4.0.2/redis.conf /etc/redis/6379.conf

  e) 至此修改完毕,注册服务

# chkconfig --add redis

  f) 启动服务和停止服务命令

# service redis start

# service redis stop

2、Windows下安装

1、安装

首先下载windows版redis:https://github.com/MicrosoftArchive/redis/releases

这里我下载解压版:

下载完成后,解压即可:可以看到如下文件.

redis-server.exe   Redis启动程序

redis.windows.conf  配置文件

通过如下命令启动:这样就代表启动成功。同样会一直占用着终端。

启动客户端进行测试:

2、注册成系统服务

redis-server.exe --service-install redis.windows.conf

3、Redis数据库

redis安装完成之后,可以使用图形化管理工具RedisDesktopManager,可以很方便的查看redis的所有数据。

通过管理工具我们可以看到redis的数据库:

redis默认有16个数据库,可以通过配置文件修改。

redis下,数据库是由一个整数索引标识,默认启用0数据库,通过select命令可以切换数据库。且每个数据库都有属于自己的空间,不必担心之间的key冲突。

* flushdb,清空当前数据库,flushall,清空所有数据库。

三、Redis通用key操作命令

redis有很多数据类型,如string、list、set、zset等等,这里先学习redis对于key的操作命令,再学习数据类型的操作。

首先插入几条数据:

1、 keys:查询key

可以使用模糊查询key,有三个通配符 *、?、[]。* 通配任意字符,? 通配单个字符,[] 通配某一个字符。

2、randomkey:随机取一个key

例如抽奖时可用于随机抽取一个人。

3、exists key:判断key是否存在,返回1/0

4、type key:判断key存储的值的类型

返回的类型可能有string、list、set、zset、hash等,但不包括int、boolean、long这种基本类型,其以字符串形式保存。

5、rename key newkey:重命名key

如果newkey 已经存在,则newkey的原值被覆盖

6、renamenx key newkey:重命名key

nx > not exists,即newkey不存在时才修改,发生修改时返回1,未发生修改返回0。

7、del key1 key2 ... keyn:删除key

不存在的key忽略,返回真正删除的key的数量

8、move key dbid:将key移动到dbid数据库

9、expire key seconds:设置key的生命周期,单位秒

pexpire key milliseconds:设置生命周期,单位毫秒。

redis的key默认是永久有效的。

10、ttl key:查询key的生命周期,返回秒数

pttl key:返回毫秒数。

对于不存在的key、已经过期的key返回-2;永久有效的key,返回-1。

11、expireat key timestamp:设置key的过期时间,timestamp为unix的时间戳

pexpireat key milliseconds-timestamp:unix时间为毫秒。

需要将过期的时间转为Unix时间戳。

12、persist key:把指定的key设为永久有效

可以将设置过期时间的key转为永久有效。

最后:

不要使用太长的键,例如,不要使用一个 1024 字节的键,不仅是因为内存占用,而且在数据集中查找键时需要多次耗时的键比较。

不要使用太短的键。用”u1000flw” 取代”user:1000:followers” 作为键并没有什么实际意义,后者更具有可读性,相对于键对象本身以及值对象来说,增加的空间微乎其微。

坚持一种模式 (schema)。例如,”object-type:id” 就不错,就像”user:1000”。点或者横线常用来连接多单词字段,如”comment:1234:reply.to”,或者”comment:1234:reply-to”。

键的最大大小是 512MB。

参考:http://wiki.jikexueyuan.com/project/redis-guide/


基础学习完,下一章学具体数据类型的操作!!!

Redis 学习(一) —— 安装、通用key操作命令的更多相关文章

  1. Redis 通用key操作命令

    1.在redis里面允许模糊查询key,有3个通配符:*,?,[]. *:通配任意字符 ?:通配单个字符 []:通配中括号内的某个字符 例如: 2.randomKey 随机返回所有key中的某个 3. ...

  2. Redis学习01_redis安装部署(centos)

    原文: http://www.cnblogs.com/herblog/p/9305668.html Redis学习(一):CentOS下redis安装和部署 1.基础知识  redis是用C语言开发的 ...

  3. Redis学习笔记-安装篇(Centos7)

    1.安装 这里使用源代码安装的方式,如果你希望使用yum或者rpm包安装的方式,可以百度一下,安装方法可谓多如牛毛. # 下载安装包 # wget http://download.redis.io/r ...

  4. Redis学习之一 安装

    一.简介 定义 Remote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. Redis是一个开源的使用ANSI C ...

  5. 2018-05-11-机器学习环境安装-I7-GTX960M-UBUNTU1804-CUDA90-CUDNN712-TF180-KERAS-GYM-ATARI-BOX2D

    layout: post title: 2018-05-11-机器学习环境安装-I7-GTX960M-UBUNTU1804-CUDA90-CUDNN712-TF180-KERAS-GYM-ATARI- ...

  6. Redis系列之key操作命令与Redis中的事务详解(六)

    序言 本篇主要目的有二: 1.展示所有数据类型中key的所有操作命令,以供大家学习,查阅,更深入的挖掘redis潜力. 2.掌握redis中的事务,让你的数据完整性一致性拥有更优的保障. redis命 ...

  7. Redis学习笔记(2)——Redis的下载安装部署

    一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redi ...

  8. redis学习 (key)键,Python操作redis 键 (二)

    # -*- coding: utf-8 -*- import redis #这个redis 连接不能用,请根据自己的需要修改 r =redis.Redis(host=") 1. delete ...

  9. redis 学习(二)-- 通用命令

    redis 学习(二)-- 通用命令 1. keys pattern 含义:查找所有符合给定模式(pattern)的key 命令 含义 keys * 遍历所有 key keys he[h-l]* 遍历 ...

随机推荐

  1. Linux中安装opencv-3.3.1

    在ubuntu16.04中安装opencv3.3.1的过程中踩了许多坑.一开始直接安装还挺顺利但运行程序时总是提示libgtk2.0-dev和pkg-config没有安装,在安装这两个包的过程中也不顺 ...

  2. Spark算子--mapPartitions和mapPartitionsWithIndex

    mapPartitions--Transformation类算子 代码示例 result   mapPartitionsWithIndex--Transformation类算子 代码示例 result ...

  3. Solr学习笔记2(V7.2)---导入自己的数据

    学而不思则罔,思而不学则殆,总是看文档不动手效果是不好的.没有实地的从自己的数据库获取数据测试一下始终是空,总结一下自己的操作步骤吧. 第一步准备配置文件 E:\Solr\server\solr\co ...

  4. twitter的ID生成器的snowFlake算法的自造版

    snowFlake算法在生成ID时特别高效,可参考:https://segmentfault.com/a/1190000011282426 SnowFlake算法生成id的结果是一个64bit大小的整 ...

  5. WPF与Win32互操作

    一.WPF如何使用HWND 当您创建WPF Window时,WPF会创建顶级HWND,并使用HwndSource将Window及其WPF内容放入HWND中.应用程序中其余的WPF内容共享此单个HWND ...

  6. Css雪碧图

    Css雪碧图: CSS雪碧 即CSS Sprite,也有人叫它CSS精灵,是一种CSS图像合并技术,该方法是将小图标和背景图像合并到一张图片上,然后利用css的背景定位来显示需要显示的图片部分. 原理 ...

  7. CCF系列之数位之和(201512-1)

    试题编号: 201512-1试题名称: 数位之和时间限制: 1.0s内存限制: 256.0MB问题描述: 问题描述 给定一个十进制整数n,输出n的各位数字之和. 输入格式 输入一个整数n. 输出格式 ...

  8. 通过psping测试结果,初步判断远端服务器的状态

    1.psping的输出结果为如下正常显示时,说明远端服务器的IP及端口可用 C:\Users\he.liming>psping 139.219.66.205:4352 PsPing v2.10 ...

  9. Git初入

    Git记录 使用git 也有一段时间了, git的入门级了解也就不再多说, 但平常使用中, 仍然会遇到很多问题, 在此记录一二. 在查资料的过程中, 发现了两个比较好的资料: 特别是第二个, 相当详细 ...

  10. mybatis 中文文档

    http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html