【NoSql】Redis实践篇-简单demo实现(一)

来源:互联网 发布:金庸功夫知乎 编辑:程序博客网 时间:2024/06/18 16:45
Redis是一个key-value存储系统。Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用

 

     Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset--有序集合)和hash(哈希类型)。这些数据类型支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从复制)。

 

MemcacheRedis区别

 

Memcache提供的数据类型少,只有键值对,Redis提供的数据类型相对较多

Memcache关机就没了,数据全部存到内存当中,但是没有提供故障恢复,Redis可以将数据存储到磁盘中

redis提供主从复制,Memcache

Memcache是多线程的(使用协议解决的),redis是单线程


  

Windows下Redis的安装使用

 

1,安装Redis

 

官方下载:http://redis.io/download可以根据需要下载不同版本

 

windows版:https://github.com/mythz/redis-windows

 

下载完成后 可以右键解压到 某个硬盘下比如E:\redis64-2.6。

 

2,启动Redis

 

进入redis目录后 开启服务  (注意加上redis.conf)

 

redis-server.exe redis.conf

这个窗口要保持开启  关闭时redis服务会自动关闭




:redis会自动保存数据到硬盘 所以如果是第二次开启时 多了一个 DB loaded from disk

 

3,测试使用

 

另外开启一个命令行窗口 进入redis目录下(注意修改自己的ip)

 

redis-cli.exe -h 192.168.24.215 -p 6379 




4,利用JAVA操作Redis


[java] view plain copy print?
  1. import org.junit.After;    
  2. import org.junit.Before;    
  3. import org.junit.Test;    
  4. import redis.clients.jedis.Jedis;    
  5. import redis.clients.jedis.JedisPool;    
  6. import redis.clients.jedis.JedisPoolConfig;    
  7.     
  8. import javax.sound.midi.Soundbank;    
  9. import java.util.*;    
  10.       
  11. public class RedisTest {    
  12.     JedisPool pool;    
  13.     Jedis jedis;    
  14.     @Before    
  15.     public void setUp() {    
  16.         pool = new JedisPool(new JedisPoolConfig(), "192.168.24.215");    
  17.     
  18.         jedis = pool.getResource();    
  19.        /*  jedis.auth("password");  */  
  20.     }    
  21.     
  22.     /**  
  23.      * Redis存储初级的字符串  
  24.      * CRUD  
  25.      */    
  26.     @Test    
  27.     public void testBasicString(){    
  28.         //-----添加数据----------    
  29.         jedis.set("name","hejingyuan");//向key-->name中放入了value-->hejingyuan    
  30.         System.out.println(jedis.get("name"));//执行结果:hejingyuan    
  31.     
  32.         //-----修改数据-----------    
  33.         //1、在原来基础上修改    
  34.         jedis.append("name","xvshu");   //很直观,类似map 将xvshu append到已经有的value之后    
  35.         System.out.println(jedis.get("name"));//执行结果:hejingyuanxvshu    
  36.     
  37.         //2、直接覆盖原来的数据    
  38.         jedis.set("name","何静媛");    
  39.         System.out.println(jedis.get("name"));//执行结果:何静媛    
  40.     
  41.         //删除key对应的记录    
  42.         jedis.del("name");    
  43.         System.out.println(jedis.get("name"));//执行结果:null    
  44.     
  45.         /**  
  46.          * mset相当于  
  47.          * jedis.set("name","hejingyuan");  
  48.          * jedis.set("xvshu","何静媛");  
  49.          */    
  50.         jedis.mset("name","hejingyuan","xvshu","何静媛");    
  51.         System.out.println(jedis.mget("name","xvshu"));    
  52.     
  53.     }   
  54.   
  55. }  


输出结果:

 

hejingyuan

hejingyuanxvshu

何静媛

null

[hejingyuan, 何静媛]

 

结束语:

 

     在操作过程中,Redis通过快照(snapshotting)方式默认保存到硬盘中,Redis默认会将快照文件存储在当前目录(可CONFIG GETdir来查看)的dump.rdb文件中,可以通过配置dir和dbfilename两个参数分别指定快照文件的存储路径和文件名。

 

在我们操作Redis过程中,它也在不断的向硬盘中存储





java操作Redis的各种测试:http://flychao88.iteye.com/blog/1527163

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 佛山市住房公积金管理中心 住房公积金查询个人账户 19住房商业贷款利率 四川省住房和城乡建设厅首页 住房商业贷款利率 佛山住房公积金管理中心 四川住房城乡建设厅 西安住房公积金管理中心 住房公积金贷款额度 沧州住房公积金查询 个人住房公积金查询入口 银行住房贷款利率计算器 合肥市住房公积金管理中心 山东省住房和城乡建设厅 2019商业住房贷款利率 住房和城乡建设部 长春住房公积金 四川省住房城乡建设厅首页 新乡市住房公积金管理中心 住房贷款利率计算器 邵阳市住房公积金管理中心 邵阳住房公积金 商业住房贷款利率 陕西省住房公积金管理中心 合肥住房公积金管理中心 长春市住房公积金 山东省住房城乡建设厅 2019各银行住房商贷利率一览表 住房公积金查询入口 陕西省住房和城乡建设厅网 沧州住房公积金个人查询入口 包头市住房公积金管理中心 佛山住房公积金中心 个人住房商业性贷款 住房公积金装修贷款能贷多少 邵阳住房公积金管理中心 工资4000住房公积金一般交多少 西安住房保障管理局网站 佛山住房公积金 住房城乡建设部 河南省住房和城乡建设厅网