5分钟带你入门Redis

1.redis概述

redis是一个开源的,先进的 key-value 存储可用于构建高性能的存储解决方案。它支持数据结构有字符串,哈希,列表,集合,带有范围查询的排序集,位图,超文本和具有半径查询的地理空间索引。 NoSQL,Not Only [SQL],泛指非关系型的数据库。所以redis是一种nosql。敲黑板画重点:redis是一种nosql.

redis的优点:

  • 异常快速
  • 支持丰富的数据类型
  • 操作都是原子的

2.下载安装

linux 系统下安装:

““ $ wget http://download.redis.io/releases/redis-3.2.6.tar.gz tarxzfredis−3.2.6.tar.gz tar xzf redis-3.2.6.tar.gz cd redis-3.2.6 $ make

启动服务器:

 ```
    $ src/redis-server
 ```

 启动客户端

 ```
 $ src/redis-cli
 ```

mac下安装:

 ```
brew install redis

启动:

redis-server
redis-cli 

windows下安装:

由于官方并没有提供windows 版本,不过微软为了能够应用redis 到 windows服务器,由微软维护了windows版的redis,下载地址:点击进入.建议下载msi 版本,直接安装即可。

启动成功:

[35142] 01 May 14:36:28.939 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
[35142] 01 May 14:36:28.940 * Max number of open files set to 10032
                _._
              _.-``__ ''-._
        _.-``    `.  `_.  ''-._           Redis 2.6.12 (00000000/0) 64 bit
    .-`` .-```.  ```\/    _.,_ ''-._
  (    '      ,       .-`  | `,    )     Running in stand alone mode
  |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
  |    `-._   `._    /     _.-'    |     PID: 35142
    `-._    `-._  `-./  _.-'    _.-'
  |`-._`-._    `-.__.-'    _.-'_.-'|
  |    `-._`-._        _.-'_.-'    |           http://redis.io
    `-._    `-._`-.__.-'_.-'    _.-'
  |`-._`-._    `-.__.-'    _.-'_.-'|
  |    `-._`-._        _.-'_.-'    |
    `-._    `-._`-.__.-'_.-'    _.-'
        `-._    `-.__.-'    _.-'
            `-._        _.-'
                `-.__.-'

[35142] 01 May 14:36:28.941 # Server started, Redis version 2.6.12
[35142] 01 May 14:36:28.941 * The server is now ready to accept connections on port 6379

3.redis 支持的数据类型

3.1字符串

启动客户端 ,存储字符串到redis.

redis> SET name forezp
OK

取字符串:

 redis> get name 
"forezp"
 ```

#### 3.2Hashes - 哈希值

redis > HMSET king username forezp password xxdxx age 22 redis > HGETALL king 1) “username” 2) “forezp ” 3) “password ” 4) “xxdxx ” 5) “age ” 6) “22”

#### 3.3 Lists - 列表

redis> lpush pricess jack (integer) 1 redis 127.0.0.1:6379> lpush pricess jolin (integer) 2 redis 127.0.0.1:6379> lpush pricess mayun (integer) 3 redis 127.0.0.1:6379> lrange pricess 0 10 1) “jack” 2) “jolin” 3) “mayun”

#### 3.4 Redis有序集合
Redis有序集合类似Redis集合存储在设定值唯一性。不同的是,一个有序集合的每个成员带有分数,用于以便采取有序set命令,从最小的到最大的分数有关。

redis > ZADD kindom 1 redis (integer) 1 redis> ZADD kindom 2 mongodb (integer) 1 redis > ZADD kindom 3 mysql (integer) 1 redis > ZADD kindom 3 mysql (integer) 0 redis > ZADD kindom 4 mysql (integer) 0 redis > ZRANGE kindom 0 10 WITHSCORES 1) “redis” 2) “1” 3) “mongodb” 4) “2” 5) “mysql” 6) “4”

#### 3.5 Redis发布订阅

开启客户端作为接受者

redis> SUBSCRIBE myking messages… (press Ctrl-C to quit )1) “subscribe” 2) “myking ” 3) (integer) 1

开启另一个客户端作为发送者:

redis > PUBLISH myking “Redis is a great caching technique” (integer) 1

这样接受者就可以收到:

 ```
"Redis is a great caching technique"

3.6 其他的一些操作

1.获取所以的key

“` redis> KEYS *

2,判断key是否存在

EXISTS key

3.删除key 

DEL key [key …]

4.获取数据类型

TYPE key

5.向尾部添加

 ```
APPEND key value

6.获取字符串长度

strlen key

当然这里只是介绍简单的一些操作,复杂的参考官方文档。

4. 在java应用中使用redis—jedis

前提是redis 已经安装,并且已经开启服务。

jedis 下载地址 https://github.com/xetorthio/jedis

Jedis is a blazingly small and sane Redis java client. Jedis was conceived to be EASY to use. 翻译: jedis是一个非常小的java客户端,被认为是容易使用。

怎么使用?

    public static void main(String[] args){

        Jedis jedis = new Jedis("localhost");
        System.out.println("Connection to server sucessfully");
        //check whether server is running or not
        System.out.println("Server is running: "+jedis.ping());
        jedis.lpush("forezp-list", "Redis");
        jedis.lpush("forezp-list", "Mongodb");
        jedis.lpush("forezp-list", "Mysql");
        // Get the stored data and print it
        List<String> list = jedis.lrange("forezp-list", 0 ,5);
        for(int i=0; i<list.size(); i++) {
            System.out.println("Stored string in redis:: "+list.get(i));
        }

    }

运行:

Connection to server sucessfully Server is running: PONG Stored string in redis:: Mysql Stored string in redis:: Mongodb Stored string in redis:: Redis Stored string in redis:: Mysql Stored string in redis:: Mongodb Stored string in redis:: Redis

redis 入门介绍就到这里了。另外,敲黑板,划重点: 遇到问题首先不要去百度搜,要去官网搜。聪明的你,是不是自己安装下 ,实践下。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逸鹏说道

MVC5 Entity Framework学习之异步和存储过程

在之前的文章中,你已经学习了如何使用同步编程模型来读取和更新数据,在本节中你将学习如何实现异步编程模型。异步可以使应用程序执行更有效率,因为它可以更有效的使用服...

3429
来自专栏恰同学骚年

自己动手写一个简单的MVC框架(第一版)

  路由(Route)、控制器(Controller)、行为(Action)、模型(Model)、视图(View)

952
来自专栏WindCoder

网易MySQL微专业学习笔记(四)-实践课数据库对象

这个系列属于个人学习网易云课堂MySQL数据库工程师微专业的相关课程过程中的笔记,本篇为其“MySQL数据库对象与应用”中的MySQL数据类型相关笔记。

591
来自专栏逢魔安全实验室

CVE-2018-2628 Weblogic反序列化POC重构详解

3195
来自专栏岑玉海

hbase源码系列(七)Snapshot的过程

  在看这一章之前,建议大家先去看一下snapshot的使用。可能有人会有疑问为什么要做Snapshot,hdfs不是自带了3个备份吗,这是个很大的误区,要知道...

2856
来自专栏木宛城主

ASP.NET那点不为人知的事(三)

有了以下的知识: ASP.NET那点不为人知的事(一) ASP.NET那点不为人知的事(二) 想必开发一个小型服务器以不是问题了,功能补复杂,能够响应...

1859
来自专栏枕边书

PHP中的数据库四、mongodb

传统数据库中,我们要操作数据库数据都要书写大量的sql语句,而且在进行无规则数据的存储时,传统关系型数据库建表时对不同字段的处理也显得有些乏力,mongo应运而...

1928
来自专栏云知识学习

初识TKE中K8S的Service Account

Service account是为了方便Pod里面的进程调用Kubernetes API或其他外部服务而设计的。它与User account不同

962
来自专栏菩提树下的杨过

puremvc框架之proxy

上一篇 puremvc框架之Command 里,已经学习了如何利用Command来解耦View层与业务逻辑的依赖,但是仍然有二个问题: 1、ButtonMedi...

2087
来自专栏技术小讲堂

ASP.NET AJAX(8)__Microsoft AJAX Library中异步通信层的使用什么是异步通信层Micorsoft AJAX Library异步通信层的组成WebRequestExec

什么是异步通信层 Microsoft AJAX Library的组长部分之一 负责ASP.NET AJAX框架中所有的客户端与服务器端的通信 其默认实现了封装了...

3225

扫码关注云+社区