`
步青龙
  • 浏览: 297565 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
72ba33fb-eefe-3de1-bd65-82a6e579265d
Java面试
浏览量:0
社区版块
存档分类
最新评论

windows下初试Nosql-redis和使用(一)

 
阅读更多

1:下载http://code.google.com/p/servicestack/wiki/RedisWindowsDownload或者 http://code.google.com/p/redis/downloads/list

2:解压redis-2.0.2,在redis-2.0.2里添加配置文件redis.conf

3测试: a: 打开server 看显示信息 主要看端口

    b:cmd进入到redis-2.0.2,执行redis-cli.exe -h 192.168.18.4 -p 6379   -- 本地ip  端口

执行完提示OK

4:使用设置 set mykey test 得到 get mykey  则会显示test

下面用Java做一个程序,放置一个对象到内存中,并取出来。前提是放两个jar,jredis-1.0-rc1.jar和jredis-core-bench-1.0-rc1.jar.myobj是自己定义的一个对象,myobjs是在内存中的名字

 

设置自定义对象代码:

 

JRedis jredis = new JRedisClient("192.168.18.4", 6379);
jredis.ping();//
long id = jredis.incr("User::next_id");
String key = "objects::User::" + id;
jredis.set(key, myobj);
jredis.sadd("myobjs", myobj);
jredis.quit();

 

 查询对象:

 

JRedis jredis = new JRedisClient("192.168.18.4", 6379);
jredis.ping();//
List<User> members = DefaultCodec.decode(jredis.smembers("users"));
	for (User user : members) {
		System.out.println("id:" + user.getId());
	}
jredis.quit();

 

部分命令:

 

Redis命令总结

Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些command可以在Linux终端使用。在编程时,比如使用Redis 的Java语言包,这些命令都有对应的方法,比如上面例子中使用的sadd方法,就是对集合操作中的SADD命令。下面将Redis提供的命令做一总结。

连接操作相关的命令

Ÿ   quit :关闭连接(connection)

Ÿ   auth :简单密码认证

对value操作的命令

Ÿ   exists(key ) :确认一个key是否存在

Ÿ   del(key ) :删除一个key

Ÿ   type(key ) :返回值的类型

Ÿ   keys(pattern ) :返回满足给定pattern的所有key

Ÿ   randomkey :随机返回key空间的一个key

Ÿ   rename(oldname , newname ) :将key由oldname重命名为newname,若newname存在则删除newname表示的key

Ÿ   dbsize :返回当前数据库中key的数目

Ÿ   expire :设定一个key的活动时间(s)

Ÿ   ttl :获得一个key的活动时间

Ÿ   select(index ) :按索引查询

Ÿ   move(key , dbindex ) :将当前数据库中的key转移到有dbindex索引的数据库

Ÿ   flushdb :删除当前选择数据库中的所有key

Ÿ   flushall :删除所有数据库中的所有key

对String操作的命令

Ÿ   set(key, value ) :给数据库中名称为key的string赋予值value

Ÿ   get(key ) :返回数据库中名称为key的string的value

Ÿ   getset(key, value ) :给名称为key的string赋予上一次的value

Ÿ   mget(key1, key2,…, key N ) :返回库中多个string(它们的名称为key1,key2…)的value

Ÿ   setnx(key, value ) :如果不存在名称为key的string,则向库中添加string,名称为key,值为value

Ÿ   setex(key , time , value ) :向库中添加string(名称为key,值为value)同时,设定过期时间time

Ÿ   mset(key1, value1, key2, value2,…key N, value N ) :同时给多个string赋值,名称为key i 的string赋值value i

Ÿ   msetnx(key1, value1, key2, value2,…key N, value N ) :如果所有名称为key i 的string都不存在,则向库中添加string,名称key i 赋值为value i

Ÿ   incr(key ) :名称为key的string增1操作

Ÿ   incrby(key, integer ) :名称为key的string增加integer

Ÿ   decr(key ) :名称为key的string减1操作

Ÿ   decrby(key, integer ) :名称为key的string减少integer

Ÿ   append(key, value ) :名称为key的string的值附加value

Ÿ   substr(key, start, end ) :返回名称为key的string的value的子串

对List操作的命令

Ÿ   rpush(key, value ) :在名称为key的list尾添加一个值为value的元素

Ÿ   lpush(key, value ) :在名称为key的list头添加一个值为value的 元素

Ÿ   llen(key ) :返回名称为key的list的长度

Ÿ   lrange(key, start, end ) :返回名称为key的list中start至end之间的元素(下标从0开始,下同)

Ÿ   ltrim(key, start, end ) :截取名称为key的list,保留start至end之间的元素

Ÿ   lindex(key, index ) :返回名称为key的list中index位置的元素

Ÿ   lset(key, index, value ) :给名称为key的list中index位置的元素赋值为value

Ÿ   lrem(key, count, value ) :删除count个名称为key的list中值为value的元素。count为0,删除所有值为value的元素,count>0从头至尾删除count个值为value的元素,count<0从尾到头删除|count|个值为value的元素。

Ÿ   lpop(key ) :返回并删除名称为key的list中的首元素

Ÿ   rpop(key ) :返回并删除名称为key的list中的尾元素

Ÿ   blpop(key1, key2,… key N, timeout ) :lpop命令的block版本。即当timeout为0时,若遇到名称为key i 的list不存在或该list为空,则命令结束。如果timeout>0,则遇到上述情况时,等待timeout秒,如果问题没有解决,则对key i+1 开始的list执行pop操作。

Ÿ   brpop(key1, key2,… key N, timeout ) :rpop的block版本。参考上一命令。

Ÿ   rpoplpush(srckey, dstkey ) :返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部

对Set操作的命令

Ÿ   sadd(key, member ) :向名称为key的set中添加元素member

Ÿ   srem(key, member ) :删除名称为key的set中的元素member

Ÿ   spop(key ) :随机返回并删除名称为key的set中一个元素

Ÿ   smove(srckey, dstkey, member ) :将member元素从名称为srckey的集合移到名称为dstkey的集合

Ÿ   scard(key ) :返回名称为key的set的基数

Ÿ   sismember(key, member ) :测试member是否是名称为key的set的元素

Ÿ   sinter(key1, key2,…key N ) :求交集

Ÿ   sinterstore(dstkey, key1, key2,…key N ) :求交集并将交集保存到dstkey的集合

Ÿ   sunion(key1, key2,…key N ) :求并集

Ÿ   sunionstore(dstkey, key1, key2,…key N ) :求并集并将并集保存到dstkey的集合

Ÿ   sdiff(key1, key2,…key N ) :求差集

Ÿ   sdiffstore(dstkey, key1, key2,…key N ) :求差集并将差集保存到dstkey的集合

Ÿ   smembers(key ) :返回名称为key的set的所有元素

Ÿ   srandmember(key ) :随机返回名称为key的set的一个元素

对zset(sorted set)操作的命令

Ÿ   zadd(key, score, member ) :向名称为key的zset中添加元素member,score用于排序。如果该元素已经存在,则根据score更新该元素的顺序。

Ÿ   zrem(key, member ) :删除名称为key的zset中的元素member

Ÿ   zincrby(key, increment, member ) :如果在名称为key的zset中已经存在元素member,则该元素的score增加increment;否则向集合中添加该元素,其score的值为increment

Ÿ   zrank(key, member ) :返回名称为key的zset(元素已按score从小到大排序)中member元素的rank(即index,从0开始),若没有member元素,返回“nil”

Ÿ   zrevrank(key, member ) :返回名称为key的zset(元素已按score从大到小排序)中member元素的rank(即index,从0开始),若没有member元素,返回“nil”

Ÿ   zrange(key, start, end ) :返回名称为key的zset(元素已按score从小到大排序)中的index从start到end的所有元素

Ÿ   zrevrange(key, start, end ) :返回名称为key的zset(元素已按score从大到小排序)中的index从start到end的所有元素

Ÿ   zrangebyscore(key, min, max ) :返回名称为key的zset中score >= min且score <= max的所有元素

Ÿ   zcard(key ) :返回名称为key的zset的基数

Ÿ   zscore(key, element ) :返回名称为key的zset中元素element的score

Ÿ   zremrangebyrank(key, min, max ) :删除名称为key的zset中rank >= min且rank <= max的所有元素

Ÿ   zremrangebyscore(key, min, max ) :删除名称为key的zset中score >= min且score <= max的所有元素

Ÿ   zunionstore / zinterstore(dstkeyN , key1,…,keyN , WEIGHTS w1,…wN, AGGREGATE SUM|MIN|MAX) :对N个zset求并集和交集,并将最后的集合保存在dstkeyN中。对于集合中每一个元素的score,在进行AGGREGATE运算前,都要乘以对于的WEIGHT参数。如果没有提供WEIGHT,默认为1。默认的AGGREGATE是SUM,即结果集合中元素的score是所有集合对应元素进行SUM运算的值,而MIN和MAX是指,结果集合中元素的score是所有集合对应元素中最小值和最大值。

对Hash操作的命令

Ÿ   hset(key, field, value ) :向名称为key的hash中添加元素field<—>value

Ÿ   hget(key, field ) :返回名称为key的hash中field对应的value

Ÿ   hmget(key, field1, …,field N ) :返回名称为key的hash中field i 对应的value

Ÿ   hmset(key, field1, value1,…,field N, value N ) :向名称为key的hash中添加元素field i <—>value i

Ÿ   hincrby(key, field, integer ) :将名称为key的hash中field的value增加integer

Ÿ   hexists(key, field ) :名称为key的hash中是否存在键为field的域

Ÿ   hdel(key, field ) :删除名称为key的hash中键为field的域

Ÿ   hlen(key ) :返回名称为key的hash中元素个数

Ÿ   hkeys(key ) :返回名称为key的hash中所有键

Ÿ   hvals(key ) :返回名称为key的hash中所有键对应的value

Ÿ   hgetall(key ) :返回名称为key的hash中所有的键(field)及其对应的value

持久化

Ÿ   save :将数据同步保存到磁盘

Ÿ   bgsave :将数据异步保存到磁盘

Ÿ   lastsave :返回上次成功将数据保存到磁盘的Unix时戳

Ÿ   shundown :将数据同步保存到磁盘,然后关闭服务

远程服务控制

Ÿ   info :提供服务器的信息和统计

Ÿ   monitor :实时转储收到的请求

Ÿ   slaveof :改变复制策略设置

Ÿ   config :在运行时配置Redis服务器

 

参考  

NoSQL数据库笔谈  (最系统的NoSQL资料)

Nosql爱好者博客

web构架研究-nosql

http://www.cnblogs.com/redcreen/tag/redis/

redis误区

推荐链接

互联网后端技术

Nosql小组

java开发2.0-nosql

http://jzkangta.iteye.com/

 

英文好的推荐以下链接:http://nosql-database.org/

 

 

分享到:
评论

相关推荐

    NOSQL-redis-运维-单机安装

    NOSQL-redis-运维-单机安装

    Another-Redis-Desktop-Manager.1.5.6

    压缩包子文件的文件名称“电脑版Another-Redis-Desktop-Manager.1.5.6.exe”表明这是一个适用于Windows操作系统的可执行文件。安装此程序后,用户可以在本地计算机上运行Another Redis Desktop Manager,连接到远程...

    php队列+php-redis队列+php-redis扩展

    总结起来,PHP队列结合PHP-Redis扩展,提供了一种高效、灵活的后台任务处理方式,适用于各种高并发和异步需求。了解并掌握这一技术,对于提升PHP应用程序的稳定性和效率具有重要意义。在实际项目中,可以根据具体...

    scrapy-redis搭建分布式爬虫环境 - 温良Miner - 博客园1

    3. Scrapy-Redis插件:Scrapy-Redis插件是Scrapy框架的一个插件,用于实现爬虫节点之间的通信和协作。 Scrapy-Redis分布式爬虫环境搭建步骤: 1. 安装Scrapy框架:使用pip install scrapy命令安装Scrapy框架。 2. ...

    NOSQL数据库-redis快速入门

    【NOSQL数据库-Redis快速入门】 NOSQL(Not Only SQL)数据库是近年来新兴的一类数据库系统,它与传统的关系型数据库相比有着显著的区别。NOSQL数据库不支持SQL语法,其数据存储结构通常不遵循关系表模型,而是采用...

    windows64位php-redis扩展

    【标题】"Windows 64位PHP-Redis扩展" 是专为在Windows操作系统上运行的64位PHP环境设计的一个关键组件。这个扩展使得PHP能够与Redis内存数据存储进行通信,从而实现高效的数据缓存和处理。Redis是一个开源的、基于...

    cpp-RedisStudio一个用于Windows的RedisGUI客户端

    Redis Studio 是一款专为Windows平台设计的Redis图形化界面客户端工具,它为开发人员和管理员提供了方便、直观的方式来与Redis数据库进行交互。Redis是一种高性能的键值存储系统,广泛应用于缓存、数据存储和实时...

    NoSQL和Redis.zip

    【描述】:NoSQL(Not Only SQL)数据库和Redis是一种内存数据存储系统,它们在现代数据管理中扮演着重要角色。NoSQL数据库旨在处理大规模分布式数据,而Redis则是一种高性能的键值存储系统,常用于缓存和实时数据...

    狂神说-Redis完整版笔记

    总结来说,Redis作为NoSQL数据库的一员,因其高性能、易扩展和丰富的数据结构,被广泛应用在现代互联网项目中。理解并熟练掌握Redis,对于提升系统的性能和应对大数据挑战具有重要意义。同时,了解NoSQL的其他类型如...

    Another-Redis-Desktop-Manager.1.4.4.exe

    Redis客户端,相对来说比较稳定,在数据量比较大的时候不会崩溃。

    tomcat85-session-redis工具jar包

    总的来说,"tomcat85-session-redis工具jar包"是一个增强Tomcat性能和可扩展性的实用工具,它通过整合Redis实现了session的分布式管理,对于需要处理大量并发用户请求且要求高可用性的Web应用来说,这是一个非常有...

    Nosql之Redis技术

    作为NoSQL数据库的一种,Redis以其快速的响应速度和高效的数据处理能力而著称。其内存中的存储方式允许数据的高速读写,同时提供了持久化机制,能够将内存中的数据保存到硬盘中,保证数据的安全性。 由于其数据结构...

    Nosql-Exploitation-Framework.zip

    Nosql-Exploitation-Framework的安装文件,其中附带了在kali-Linux 安装说明“readme-install on kali.txt”,因为是英文写的备注,故也可以参考本博文中具体介绍

    The-Little-Redis-Book中文版.pdf

    Redis是一种基于内存的NoSQL数据库,能够提供高性能的数据存储和检索功能。Redis的主要特点包括: * 基于内存的存储,能够提供高性能的数据存储和检索功能 * 支持多种数据结构,包括字符串、列表、集合、哈希表等 *...

    Redis从入门到精通视频.rar

    03-redis-redis是一种Nosql数据库.avi 04-redis-redis数据库特点简介.avi 05-redis-安装redis数据库.avi 06-redis-回顾安装redis.avi 07-redis-启动redis服务.avi 08-redis-关闭redis服务.avi 09-redis-redis客户端....

    Python库 | cdk8s-redis-0.1.11.tar.gz

    总的来说,cdk8s-redis是Python开发者在Kubernetes环境中构建高效Redis应用的利器,它的出现让云原生环境下的数据库管理变得更加简单和高效。通过掌握这个库,开发者可以更加专注于业务逻辑,而不是基础设施的细节,...

    Python库 | tencentcloud-sdk-python-redis-3.0.314.tar.gz

    使用Tencentcloud-sdk-python-redis库,我们可以执行一系列操作,包括但不限于: 1. 创建Redis实例:通过调用`CreateInstance`方法,提供实例类型、存储容量、网络配置等信息。 2. 查询Redis实例:使用`...

    spring分布式+redis3+nosql-最终版源码

    综上所述,这个"spring分布式+redis3+nosql-最终版源码"项目为开发者提供了一个完整的示例,展示了如何利用Spring构建分布式系统,结合Redis 3实现高效缓存,以及使用NoSQL数据库处理大量数据。通过对这些源码的学习...

    scalacache-redis_2.11-0.3.0.zip

    综合以上,"ScalaCache-Redis_2.11-0.3.0.zip"和"LucreMatrix.zip"代表了两个不同的领域:一个是后端缓存管理,另一个是前端数据可视化和交互。开发者可以结合两者,利用ScalaCache的Redis支持来创建一个高效的数据...

    NOSQL数据库-Redis思维导图

    里面详细记载了Redis的安装与使用,已经对集群结构和哨兵模式的讲解和实现

Global site tag (gtag.js) - Google Analytics