redis基础入门

原创 2015年07月09日 22:52:57

1.Redis基本认识

官方网站:http://redis.io/
在线演示网站 :http://try.redis.io/
github网站 : https://github.com/antirez/redis

1.作为key-value模式的内存数据库
2.作为轻量级的MQ工具,提供消息管理功能,消息出队效率高,入队数据量过大是性能相对减弱

Redis分为 redis-server 和redis-client, 作为数据库和程序连接使用
在redis的官网列出了redis的不同语言支持的客户端,其中针对java的比较活跃的jedis 和 Jredis 等。官方推荐使用 Jedis

2.redis 安装和基本操作

2.1 安装

redis提供的linux 下面的安装的方法,在Linux官方网站下载最新的稳定版本的压缩包(没有Linux环境的可以进如 http://try.redis.io/ 学习命令)

1.进入Linux系统

$ tar xzf redis-3.0.2.tar.gz
$ cd redis-3.0.2
$ make

2.启动redis服务器端

$ src/redis-server

3.使用客户端

$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

2.2 基本操作

redis的数据类型
字符串, list,set,zset(有序集合,暂时我就叫它zset吧),hash
1 字符串
set,get
set var_name value
get var_name
keys * 查看所有的键
* incr 并发时安全的自增*
incr var_name 在变量var_name上自增

自动过期时间问题
expire var_name time_second 设置变量过期时间
ttl var_name 查看变量当前剩余过期时间
对一个设置了过期时间的变量重新使用set命令之后,过期时间会被清除,这是查看ttl为-1,ttl 返回值为-1表示从来没有设置过期时间,-2表示已经过期,不在存在。

* 2 复杂元素-list*
lpush ,rpush 往栈里面压入值(入栈),lpop、rpop 从栈里面取值(出栈),取出值后栈里面的元素减少
lpush list_name values
lpop list_name
lrange list_name start len 取list的值 (len为1遍历所有)
llen 从左边数 集合的长度

3 复杂元素-set
sadd set_name value 添加元素
srem set_name value 删除集合元素
sismember set_name test_value 检测元素 test_value 属不属于集合
smembers set_name 查看集合所有的元素
sunion set_a set_b 合并两个元素,去掉重复
zadd sort_set_name sort_score value 通过sort_score来实现一个排序的集合,sort_score的大小决定顺序。
zrange sort_set_name startIndex endIndex 取值,包换startIndex和endIndex处的值

* 4 复杂元素-hashs *

hash值是一中类似 map<String,String>的类型,可以很方便的用来表示一个Object ,例如表示一个user

hset user name ‘Fun’
hset user age ‘24’
上面的两句等同 hmset user name ‘Fun’ age ‘24’

取值
hgetall user 或者 hget user name

例子:

> hmset user:100 name 'Fun' age '24'
OK
> hgetall user:100  //注意查出来的结果
1) "name"
2) "Fun"
3) "age"
4) "24"
> hget user:100 name  //查看单个field
"Fun"

hash对于数值的自增策略
HSET user:1000 visits 10
HINCRBY user:1000 visits 1 => 11
HINCRBY user:1000 visits 10 => 21
HDEL user:1000 visits
HINCRBY user:1000 visits 1 => 1

在redis中通常设置一个key的之后key的命名中有个”:”后面跟一个数据,这个数据通常与数据id一致

更多命令在官方文档中查看,针对redis的数据类型的一些操作。

与程序结合

以java程序示例,使用jedis包,建立maven项目。
加入依赖

<dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.7.2</version>
        <type>jar</type>
        <scope>compile</scope>
</dependency>

程序示例

package fun.fun.jedis.demo;

import java.util.HashMap;
import java.util.Map;

import redis.clients.jedis.Jedis;

/**
 * test app!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        final String HOST="192.168.115.100";//安装redis的主机的ip
        final int PORT=6379;//redis服务设置的端口,默认的,可以在redis 安装的根目录里面修改redis.conf文件修改端口

        Jedis jedis = null;
        try{
            jedis = new Jedis(HOST,PORT);
            jedis.set("foo", "bar");
            Map<String,String> usermap = new HashMap<String,String>();
            usermap.put("name","Fun");
            usermap.put("age","24");
            jedis.hmset("user:1", usermap);
            String value = jedis.get("foo");
            Map<String,String> rs = jedis.hgetAll("user:1");
            System.out.println(value);
            System.out.println(rs);
        }catch(Exception e){
            e.printStackTrace();
            jedis.close();
        }

    }
}

运行结果

bar
{name=Fun, age=24}

主要记录下自己对redis的几个基本数据类型的熟悉和相应的增删改查的命令。然后跑起来一个demo程序

版权声明:本文为博主原创文章,未经博主允许不得转载。

干货--Redis 30分钟快速入门

一、redis 环境搭建2 二、redis学习笔记之数据类型3 三、redis学习笔记之排序11 四、redis学习笔记之事务16 五、redis学习笔记之pipeline20 六、redis学习笔记...
  • tanggao1314
  • tanggao1314
  • 2016年04月10日 21:56
  • 8270

《java基础入门》课后习题答案_传智播客版

链接:https://pan.baidu.com/s/1dE1MgRv 密码:6m9h
  • ESESZB
  • ESESZB
  • 2017年11月29日 13:10
  • 513

Redis基础总结

转自:http://www.jb51.net/article/56448.htm 1.redis是什么 2.redis的作者何许人也 3.谁在使用redis 4.学会安装redis ...
  • basycia
  • basycia
  • 2016年08月10日 20:20
  • 2553

JAVA入门基础详解之一

一,系统及Java开发环境 1、介绍Linux操作系统:非常主流的服务器操作系统、开源的操作系统、免费、类Unix操作系统     Java主要用于服务器端的开发,因此Java应用的部署环境有很多为L...
  • sinat_36258409
  • sinat_36258409
  • 2016年10月16日 13:14
  • 432

10分钟快速入门Redis

10分钟快速入门Redis
  • github_27924183
  • github_27924183
  • 2017年08月08日 15:57
  • 280

初学JSP(JSP基础)

本文章是作者刚学JSP后的一个总结,刚接触JSP的朋友可以来看看,大神可以帮忙提出一下错误!...
  • hy_butter
  • hy_butter
  • 2017年03月05日 21:02
  • 1001

Winform基础入门(一)

l       概念和基础 l       常用的控件及其作用 l       向文本框添加时间和控件ComboBox l       MessageBox类和窗体的一些属性事件 l       Ta...
  • u011593927
  • u011593927
  • 2013年10月13日 14:01
  • 4189

Python零基础入门一

上一个寒假学习完了《Android-第一行代码》这本书,这个寒假打算好学习一下python这门语言,一方面是由于对python的爬虫比较感兴趣,另一方面也是算是搜索查找的一种工具。这次学习由于没有找到...
  • BeMoreQuiet
  • BeMoreQuiet
  • 2017年01月09日 21:21
  • 1238

java界面编程(1) ------ Swing基础

本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020           最近想学下java的界面编程,在此记录下。     大多...
  • jesson20121020
  • jesson20121020
  • 2014年11月15日 00:00
  • 1422

JAVA轻松零基础入门

首先 Java概述与面向对象思想的总结 1 1.1 Java语言的发展 1 1.1.1 Java语言的产生 1 1.1.2 Java语言的发展 1 1.2 Java语言的特点 ...
  • javaniuniu
  • javaniuniu
  • 2017年04月17日 12:49
  • 1702
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:redis基础入门
举报原因:
原因补充:

(最多只允许输入30个字)