加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

最适合新手的Redis基础

发布时间:2020-03-23 09:06:32 所属栏目:编程 来源:站长网
导读:副标题#e# 我们先看看Redis官网给的介绍: Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets wi
副标题[/!--empirenews.page--]

我们先看看Redis官网给的介绍:

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams. 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是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种数据类型,功能挺强。

2. Redis之父

Redis之父是Salvatore Sanfilippo,一名来自意大利西西里岛的程序员,大家更习惯称呼他Antirez。如果你对他感兴趣,可以去他的博客逛逛,或者去关注他的github。

3. Redis有什么优势

 速度快:Redis使用内存来存储数据集,且支持Pipelining命令,可以一次发送多条命令。

 持久化:可以把内存中的数据保存在磁盘中,在重启时可重新加载使用。

 原子性:所有操作都是原子性的,同时支持事务。

 数据结构丰富:支持字符串、列表、哈希、集合及有序集合,满足大多数使用需求。

 支持多种语言:Redis支持许多语言,如C、C++、C#、Go、Java、JavaScript、PHP等等。

 多种特性:Redis还支持publish/subscribe, 通知, key 过期等特性。

4. Redis能做什么

因为Redis交换数据速度快,所以常在服务器中被用于存储一些需要频繁调取的数据,相比于直接读取磁盘来获得数据,使用Redis可以节省大量时间,提升效率。举个例子:

某视频网站每天有100万人访问首页推荐视频专栏,如果都从数据库查询读取,那么每天都至少要多出100万次数据库查询请求。若使用了Redis,将常被调取的数据存到内存中,每次节约0.1秒,100万次就有10万秒,极大程度提高了速度与开销。

总之,Redis的应用场景十分广泛,且价值极高,现在就开始学学基础。

5. 安装Redis

工欲善其事必先利其器,学习Redis的第一步肯定就是安装Redis。由于我的环境是Windows系统,就只演示Windows下安装Redis。如果你不想安装Redis,但想体验一番,可以去官网提供的在线测试网站,里面也附有简单的介绍和教程。

 Windows下安装Redis下载地址:https://github.com/microsoftarchive/redis/releases/tag/win-3.2.100这里我们下载Redis-x64-3.2.100.zip压缩包文件(如果有更新版本,可以下载最近更新的稳定版本)。

最适合新手的Redis基础

download

下载好之后解压到自己的文件夹中。例如我解压到D:redis中。

最适合新手的Redis基础

unzip

打开一个cmd窗口,使用cd命令切换目录到解压后的文件夹路径(例如我切换目录到D:redis),然后运行命令:

redis-server.exe redis.windows.conf。 

输入之后会显示如下界面:

最适合新手的Redis基础

redis-server

这样我们就打开了一个redis服务端,从图中我们可以看到一些信息,比如端口号为6379。如果要使用redis服务端,我们需要再打开一个cmd窗口,原来的不要关闭,不然就不能访问服务端了。同样将路径切换到redis目录下,然后运行:

redis-cli.exe -h 127.0.0.1 -p 6379 

存入一个键值对:

set firstkey "hello redis" 

取出键值对:

get firstkey 

关闭连接:

quit 

最适合新手的Redis基础

first_use

这样我们就完成了Redis在Windows下的安装并初次体验了Redis的key-value存储方式。

6. Redis数据结构

Redis支持五种数据结构:String(字符串)、Hash(哈希)、List(列表)、Set(集合)以及SortedSet(有序集合)。下面我们简单介绍下每一种数据结构以及他们的基本命令。

 StringString是Redis最基本的数据结构,也是任何存储系统都必备的数据类型。String类型是二进制安全的,简单来说,基本上你什么都能用字符串存储,你可以把图片文件的内容或者序列化的对象作为字符串来存储。String类型的值最大可以存512MB,确实基本什么都够存了。 

> set mykey "hello world"  

OK  

> gey mykey  

  "hello world"    

> getrange mykey 6 10  

    "world"  

    > getrange mykey 0 20  

    "hello world"  

    > getrange mykey 0 -1  

    "hello world" 

Tips:从上面几个实例,我们不难看出字符串起始从0开始;若end大于字符串长度时返回完整字符串;而当end为-1时,end为字符串最后一个字符。 

> getset database "mysql"  

    (nil)  

    > get database  

    "mysql"  

    > getset database "redis"  

    "mysql"  

    > get database  

    "redis" 

Tips: 当键未设置时,会返回(nil)。 

> strlen mykey  

   (integer) 11  

> append mykey ", hello redis"  

  24  

  >get mykey  

  "hello world, hello redis"    

> set incr_num 10  

   OK  

   >get incr_num  

   "10"  

   >incr incr_num  

   (integer) 11  

> incrby incr_num 4  

(intrger) 15  

> incrbyfloat incr_num 0.5  

 15.5 

Tips:整数值会显示为integer,当变为浮点型后并不会提示为float 

> set decr_num 10  

   OK  

   > get decr_num  

   "10"  

   > decr decr_num  

   (integer) 9    

> decrby decr_num 4  

   (integer) 5 

Tips:redis并没有数字值减少给定浮点值的命令,如果我们想要decr_num减少2.5,可以用incrbyfloat命令执行incrbyfloat decr_num -2.5。   

> incrbyfloat decr_num -2.5  

      2.5 

  decrby key decrement:整数值减少给定整数值(decrement)

  decr key:整数值-1

  incrbyfloat key increment:数字值增加给定浮点值(increment)

  incrby key increment:整数值增加给定整数值(increment)

   ncr key:整数值+1

  append key value:如果可以已存在且是一个字符串,则将指定value添加到原值末尾,会返回操作后字符串长度

  strlen key:返回键所存储的字符串值的长度

  getset key value:设置指定键的新值,并返回旧值

  getrange key start end:返回key中字符串的子串

  get key:获取指定键的值

  set key value:设置指定键的值

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读