java如何操作非关系型数据库redis(

Wesley13
• 阅读 738

redis简单介绍:

是一种Nosql数据库,Nosql全称是Not Only SQL,是一种不同于关系型数据库的数据库管理系统设计方式。对NoSQL最普遍的解释是“非关系型的”,强调Key-Value Stores和文档数据库的优点,而不是单纯的反对RDBMS

So what can I do with Jedis?
All of the following redis features are supported:
•    Sorting
•    Connection handling
•    Commands operating on any kind of values
•    Commands operating on string values
•    Commands operating on hashes
•    Commands operating on lists
•    Commands operating on sets
•    Commands operating on sorted sets
•    Transactions
•    Pipelining
•    Publish/Subscribe
•    Persistence control commands
•    Remote server control commands
•    Connection pooling
•    Sharding (MD5, MurmureHash)
•    Key-tags for sharding
•    Sharding with pipelining
•    redis中文官方网站: http://redis.cn/
•    redis中文版命令参考: http://redis.readthedocs.org/en/latest/index.html
•    redis (Win32/64 Dušan Majkić.): https://github.com/dmajkic/redis/downloads
•    jedis 源码:  https://github.com/xetorthio/jedis
•    jedis jar: https://github.com/xetorthio/jedis/downloads

在java程序中,使用redis步骤:
    下载redis
redis (Win32/64 Dušan Majkić.):下载地址: https://github.com/dmajkic/redis/downloads

java如何操作非关系型数据库redis(

下载黄线部分
下载完成后,解压

java如何操作非关系型数据库redis(

打开黄线文件

java如何操作非关系型数据库redis(

起动redis-server.exe就可以进行如下测试了,不过在测试前还需要下载jedis开发包哦,注意在测试时,不要关闭redis-server.exe

注意,在做以下测试时,需要打开redis服务端
下载jedis开发包

java如何操作非关系型数据库redis(

jedis-2.1.0.jar是目前最新的开发包,里面增加了许多 新的方法。

如下图示例:

java如何操作非关系型数据库redis(

1.将jedis开发包加入到lib目录下

java如何操作非关系型数据库redis(

Java中使用redis示例程序:
Jedis jedis = new Jedis("localhost",6379);
    
jedis.set("foo", "bar");
String value = jedis.get("foo");

测试代码
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import redis.clients.jedis.Jedis;

public class Test01 {
    public static void main(String[] args) {
        // 连接
        Jedis jedis = new Jedis("localhost", 6379);
        // 对字符串的操作

        // 给名称为apple的key赋值
        jedis.set("apple", "www.apple.com");
        // 返回名称为apple的key的value
        // System.out.println(jedis.get("apple"));

        // 将value追加到key原来值的末尾
        // System.out.println(jedis.append("db", "mysql"));
        // System.out.println(jedis.get("db"));

        // 若key不存在,即把key设为value
        // System.out.println(jedis.exists("myphone"));
        // System.out.println(jedis.append("myphone", "nokia"));

        // 对list操作

        // 将student1插入到teacher列表的表头
        // System.out.println(jedis.lpush("teacher", "student1"));
        // 将student2插入到teacher列表的表头
        // System.out.println(jedis.lpush("teacher","student2"));
        // 返回teacher列表的长度
        // System.out.println(jedis.llen("teacher"));
        // 返回teacher列表中的元素,下表从0开始
        // System.out.println(jedis.lrange("teacher", 0, -1));

        // java命令遍历
        /*
         * List<String> list=jedis.lrange("teacher", 0, -1); for (Iterator
         * iterator = list.iterator(); iterator.hasNext();) { String string =
         * (String) iterator.next(); System.out.println(string); }
         */

        // set操作

        // 向名称为dept的set中添加元素,成功返回1,失败返回0,无序
        System.out.println(jedis.sadd("dept", "张三"));
        System.out.println(jedis.sadd("dept", "老马"));
        jedis.sadd("dept", "老马2");
        jedis.sadd("dept", "老马3");
        jedis.sadd("dept", "老马4");
        jedis.sadd("dept", "老马5");
        jedis.sadd("dept", "老马6");
        // 返回dept的所有元素
        // System.out.println(jedis.smembers("dept"));
        // 遍历

        /*
         * Set<String> set=jedis.smembers("dept"); for (Iterator iterator =
         * set.iterator(); iterator.hasNext();) { String string = (String)
         * iterator.next(); System.out.println(string); }
         */
        // 返回dept中的元素个数
        System.out.println(jedis.scard("dept"));
        // 删除【老马】这个元素
        System.out.println("删除某个元素" + jedis.srem("dept", "老马"));
        System.out.println(jedis.smembers("dept"));

        // 有序集(个人理解,有序集,就是有序的set集合)

        /*
         * //向class中添加元素,100用于排序 System.out.println(jedis.zadd("class", 100,
         * "老马")); System.out.println(jedis.zadd("class", 100, "老马dd"));
         * //若"老马"元素存在,则用88替换以前的数据 jedis.zadd("class", 88, "老马");
         * //返回"老马"元素的scope值 System.out.println(jedis.zscore("class","老马"));
         * System.out.println(jedis.zadd("class", 12, "老张"));
         * //显示class中所有的元素(元素按scope从小到大排列)
         * System.out.println(jedis.zrange("class", 0, -1)); //返回class中元素的个数
         * System.out.println(jedis.zcard("class")); jedis.zrem("class",
         * "老马dd"); System.out.println(jedis.zrange("class", 0, -1));
         * //显示class中所有的元素(元素按scope从大到小排列)
         * System.out.println(jedis.zrevrange("class", 0, -1));
         */
    }
}
体会:1.通过引入jedis开发包,可通过java程序操作redis数据库
2.    reids提供了多种命令,来操作set,list,zset,string等数据类型,多熟悉,对号入座哦,呵呵
3.    与java中提供的操作集合的方法对比学习
4.    命令比关系数据库简单,各个元素之间没有关系也可存入,这是NOSQL与关系数据库的一点区别(个人的一点小小体会)
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Wesley13 Wesley13
3年前
MongoDB的安装与使用
1NoSQL简介NoSQL(NoSQLNotOnlySQL),意即"不仅仅是SQL";NoSQL是指非关系型的数据库,有时也称作NotOnlySQL的缩写,即"不仅仅是SQL",是对非传统关系型数据库管理系统的统称;NoSQL用于超大规模数据的存储(数据存储不需要固定的模式,无需多余操
Stella981 Stella981
3年前
Redis安装及前后置启动
Redis简单介绍及在Linux上安装(这里测试用是版本:redis3.0.0.tar.gz)一:什么是Redis?redis就是C语言编写的一个高性能的键值存储(keyvalue)的非关系型数据库(NoSql)。二:非关系型数据库的优点与缺点优点:可以轻松地处理海量数据缺点:1.没有主外键,
Stella981 Stella981
3年前
Redis数据库的安装与基本应用
一:了解NoSQL1:介绍:Nosql的全称是NotOnlySql,这个概念早起就有人提出,在09年的时候比较火。Nosql指的是非关系型数据库,而我们常用的都是关系型数据库。就像我们常用的mysql,sqlserver一样,这些数据库一般用来存储重要信息,应对普通的业务是没有问题的。但是,随着互联网的高速发展,传统的关系型数据库
Stella981 Stella981
3年前
Redis的认识和基本操作
 Redis是什么Redis是一个高性能的开源的、C语言写的Nosql(非关系型数据库),数据保存在内存中。Redis是以keyvalue形式存储的Nosql,和传统的关系型数据库不一样。不一定遵循传统数据库的一些基本要求,比如说,不遵循sql标准,事务,表结构等等,非关系型数据库严格上不是一种数据库,应该是一种数据结构
Stella981 Stella981
3年前
Redis_Basics
redis基本信息!(https://img2018.cnblogs.com/blog/1309611/201911/130961120191101193139501861498195.png)redis属于非关系型数据库,可存储大量的非结构化数据,操作方式为nosql,数据存储结构为keyvalue,可
Wesley13 Wesley13
3年前
MongoDB学习笔记
Nosql简介:NoSQL(NotOnlySQL),意即“不仅仅是SQL“,指的是非关系型数据库。是一种全新的数据库革命性运动,早期就有人提出,发展至2009年趋勢越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是种全新的思维的注入。关系型数据库中的表都是存储一些结
Stella981 Stella981
3年前
ELK学习笔记之ElasticSearch的索引详解
0x00ElasticSearch的索引和MySQL的索引方式对比Elasticsearch是通过Lucene的倒排索引技术实现比关系型数据库更快的过滤。特别是它对多条件的过滤支持非常好,比如年龄在18和30之间,性别为女性这样的组合查询。倒排索引很多地方都有介绍,但是其比关系型