当前位置: 澳门新濠3559 > 编程 > 正文

可以根据需要下载不同版本,中存储的数据是以

时间:2019-12-08 22:39来源:编程
Redis 一、什么是redis 1.Redis是长间距的 有客商端和服务端,客户端和服务端能够摆放在区别的机械上,两个经过redis自定义的情商远程传输和相互的,大家平常说的是服务端。暗中认可服

Redis

一、什么是redis

  • 1.Redis是长间距的
    有客商端和服务端,客户端和服务端能够摆放在区别的机械上,两个经过redis自定义的情商远程传输和相互的,大家平常说的是服务端。暗中认可服务端口为6379。
  • 2.Redis是基于内部存款和储蓄器的
    抱有的操作非常赶快,质量优于比基于硬盘的MySQL要快超多,又因为具有的多寡和结构存款和储蓄于内部存款和储蓄器中国和北美洲常吃内部存款和储蓄器。
  • 3.Redis是非关系型数据库
    真相上也是数据库,但MySQL关系型数据仓库储存储时必得定义数据词典,而Redis则无需

Redis是三个key-value存款和储蓄系统。和Memcached雷同,它帮衬存储的value类型相对越多,满含string(字符串卡塔尔(英语:State of Qatar)、list(链表卡塔尔(英语:State of Qatar)、set(集合卡塔尔(英语:State of Qatar)、zset(sorted set --有序会集卡塔尔(قطر‎和hash(哈希类型)。那么些数据类型都帮衬push/pop、add/remove及取交集并集和差集及更丰盛的操作,并且那一个操作都是原子性的。在这里底蕴上,redis补助各样差别方法的排序。与memcached同样,为了保险功效,数据都以缓存在内部存款和储蓄器中。不同的是redis会周期性的把改革的数据写入磁盘恐怕把改进操作写入追加的记录文件,並且在这里功底上完结了master-slave。

mysql 中存储的数目是以文件格局保留在本地硬盘中的,Redis是内部存款和储蓄器告诉缓存数据库。
当中数据类型:string list set sort set hash

二、redis应用处景

  • 1.缓存
    或多或少系统接口相当的慢的时候,能够把一些数据放在Redis中缓存起来,下一次取多少就不开展特别耗费时间的SQL操作了,直接从缓存中取数据,提高系统性能最常用的章程之大器晚成;
  • 2.队列
    Redis 中有list接口,可以存款和储蓄list。 使用Push插入队列的因素, 使用 Pop来弹出抽离开队容列的要素,push和pop操作保障了原子性的贯彻;
  • 3.数码存款和储蓄
    负有的增加和删除改查都以在Redis中进行,Redis有硬盘的长久化机制,依期开展仓库储存,无需依据MySQL举行数据存款和储蓄,保证了数据的完整性和安全性。

因为是最初使用,所以是在windows下开展设置和选拔,仿照效法了几篇博客,上边收拾一下:

悠久化效能:在运作的过程中能够把数量保存在地头硬盘中风度翩翩份,防止本地服务器断电数据错失。

可以根据需要下载不同版本,中存储的数据是以文件形式保存在本地硬盘中的。三、Redis安装蒙受

(一)Linux下安装Redis

  • 1、服务器情况
  • 2、Redis版本下载:http://download.redis.io/releases/
  • 3、预装软件(gcc:c语言编写翻译器,tcl:少年老成种语言)
  • 4、服务端安装步骤
    1)、踏入解压后的目录,试行make
    2)、studo make install 将调换的二进制文件放到 /uer/local/bin目录下
    3)、复制redis.conf到温馨钦命的文本夹。 配置redis.conf文件,
    纠正daemonize yes 后台运营Redis port 7200(多实例和巴中题材)
    4)、启动 redis-server redis.conf
  • 5、redis客商端的设置
    查看redis客户端 which redis-cli
    报到:redis-cli -h 127.0.0.1 -p 7000(-h表示IP地址;-p代表端口号)
    redis-cli(暗中同意登入本机6379端口卡塔尔
    报到之后info命令查看redis音信
    (二)windows先安装Redis
  • 1、今后Redis安装包并解压
  • 2、展开Windows的cmd窗口,运维服务器(输入:redis-server.exe redis.windows.conf )
  • 3、重启三个cmd窗口,运转客户端(输入:redis-cli.exe -h 127.0.0.1 -p 6379 )
  • 4、将 redis 服务器运营放入 windows 服务中,使其开机自动运行(输入:redis-server --service-install redis.windows.conf --loglevel verbose)

1.安装Redis

redis是基于linux系统上支付的,要想php操作redis必需把redis安顿到Linux操作系统中技能操作redis。

四、Redis的多样数据类型

澳门新濠3559 1

Paste_Image.png

  • 1、string
127.0.0.1:6379> set string zhangsna
OK
127.0.0.1:6379> get string
"zhangsna"

string自增操作incr(incrby num:增加num)

127.0.0.1:6379> set string2 4
OK
127.0.0.1:6379> get string2
"4"
127.0.0.1:6379> incr string2
(integer) 5
127.0.0.1:6379> get string2
"5"

减操作decrby

127.0.0.1:6379> decrby string2 2
(integer) 3
127.0.0.1:6379> get string2
"3"
  • 2.List
    从左侧推入四个成分,并从右边弹出
127.0.0.1:6379> lpush list1 12
(integer) 1
(1.00s)
127.0.0.1:6379> lpush list1 13
(integer) 2
127.0.0.1:6379> rpop list1
"12"

llen输出List中有多少个成分,成分得以再一次

127.0.0.1:6379> lpush list 12
(integer) 1
127.0.0.1:6379> lpush list 13
(integer) 2
127.0.0.1:6379> lpush list 13
(integer) 3
127.0.0.1:6379> llen list
(integer) 3
  • 3、set(不可重复)
    添港成分:sadd set1 12
    看清有稍许个要素:scard set1
    认清某些成分是还是不是在set里面:sismember set1 12
    剔除有些元素:srem set1 12
127.0.0.1:6379> sadd set1 12
(integer) 1
127.0.0.1:6379> sadd set1 13
(integer) 1
127.0.0.1:6379> sadd set1 13
(integer) 0
127.0.0.1:6379> scard set1
(integer) 2
  • 4、Hash
    插入/修改:hset hash1 key1 12
    获取:hget hash1 key1
    查看hash长度:hlen key
    壹遍性拿到:hmget hash1 key1 key2
127.0.0.1:6379> hset hash1 key1 12
(integer) 1
127.0.0.1:6379> hget hash1 key1
"12"
127.0.0.1:6379> hset hash1 key2 13
(integer) 1
127.0.0.1:6379> hset hash1 key3 13
(integer) 1
127.0.0.1:6379> hlen hash1
(integer) 3
127.0.0.1:6379> hset hash1 key3 14
(integer) 0
127.0.0.1:6379> hget hash1 key3
"14"
127.0.0.1:6379> hmget hash1 key1 key2 key3
1) "12"
2) "13"
3) "14"
  • 5、sort set
    增加/修改:zadd zset1 10.1 val1
    翻看个数:zcard zset1
    查看排行:zrange zset1 0 2 withscores
    查阅有个别value排行:zrank zset1 val2
    sort set类型操作,如若多个因素的score相符,根据字节顺序排列前后相继
127.0.0.1:6379> zadd zset 10.1 val1
(integer) 1
127.0.0.1:6379> zadd zset 11.2 val2
(integer) 1
127.0.0.1:6379> zadd zset 9.2 val3
(integer) 1
127.0.0.1:6379> zcard zset
(integer) 3
127.0.0.1:6379> zrange zset 0 2 withscores
1) "val3"
2) "9.1999999999999993"
3) "val1"
4) "10.1"
5) "val2"
6) "11.199999999999999"
127.0.0.1:6379> zrank zset val2
(integer) 2
127.0.0.1:6379> zadd zset 12.2 val3
(integer) 0
127.0.0.1:6379> zrange zset 0 2 withscores
1) "val1"
2) "10.1"
3) "val2"
4) "11.199999999999999"
5) "val3"
6) "12.199999999999999"
127.0.0.1:6379> zadd zset 12.2 val2
(integer) 0
127.0.0.1:6379> zrange zset 0 2 withscores
1) "val1"
2) "10.1"
3) "val2"
4) "12.199999999999999"
5) "val3"
6) "12.199999999999999"

官网:

五、redis的长久化情势

  • 1、快速照相:redis私下认可的持久化形式,将内部存款和储蓄器中的多少写入到硬盘的二进制文件中,能够再配置文件中配置活动快速照相,如:假如redis在900秒内有超越1个key值产生转移,就能自动快照;由于快速照相是每间隔蓬蓬勃勃段时间实践贰回,由此生龙活虎旦redis意外down掉的话,就能吐弃部分数据;
![](https://upload-images.jianshu.io/upload_images/4857690-3c13eb07cc5bedaa.png)

image.png
  • 2、aof方式:redis将每便收到的写命令通过write函数存到硬盘的文本中,重启redis后,会读取这些文件中的写命令并实践,便得以重城建总公司体数据库;
![](https://upload-images.jianshu.io/upload_images/4857690-0c54e63f67950fdb.png)

image.png

法定下载: 能够依据须要下载差别版本

注意:

暗中同意情状下,如若redis最终三遍后中国太平洋保证公司存数据战败,redis就能够告意气风发段落采取写操作,以这种强硬的方式通告客户redis不能够准确悠久化到硬盘;

澳门新濠3559,windows版:

澳门新濠3559 2

澳门新濠3559 3

github的财富得以ZIP直接下载的(这么些是给不亮堂的同校友情提醒下)。

下载完成后 能够右键解压到 有个别硬盘下 比方D:Redisredis-2.6。

在D:Redisredis-2.6binrelease下 有两个zip包 一个32位一个64位。

依靠本人windows的位数 解压到D:Redisredis-2.6 根目录下。

2.启动Redis

澳门新濠3559 4

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

redis-server.exe redis.conf
以此窗口要保全开启  关闭时redis服务会自动关闭

redis会自动保存数据到硬盘 所以图中是自个儿第一遍拉开时 多了一个 DB loaded from disk

3.测量检验使用

澳门新濠3559 5

别的开启三个发令行窗口 步入redis目录下 (注意改良本身的ip)

redis-cli.exe -h 192.168.10.61 -p 6379 

4.Java开发包Jedis

Jedis :Redis的官方首荐Java开采包

<!--Redis --> 
<dependency> 
<groupId>redis.clients</groupId> 
<artifactId>jedis</artifactId> 
<version>2.0.0</version> 
<type>jar</type> 
<scope>compile</scope> 
</dependency> 


package com.lujianing.utils;   
import org.junit.Before; 
import org.junit.Test; 
import redis.clients.jedis.Jedis; 
import redis.clients.jedis.JedisPool; 
import redis.clients.jedis.JedisPoolConfig; 
import java.util.HashMap; 
import java.util.Iterator; 
import java.util.List; 
import java.util.Map; 
/** 
* Created by lujianing on 14-2-28. 
*/ 
public class JedisUtilTest { 
JedisPool pool; 
Jedis jedis; 
@Before 
public void setUp() { 
pool = new JedisPool(new JedisPoolConfig(), "192.168.10.61"); 
jedis = pool.getResource(); 
//  jedis.auth("password"); 
} 
@Test 
public void testGet(){ 
System.out.println(jedis.get("lu")); 
} 
/** 
* Redis存储初级的字符串 
* CRUD 
*/ 
@Test 
public void testBasicString(){ 
//-----添加数据---------- 
jedis.set("name","minxr");//向key-->name中放入了value-->minxr 
System.out.println(jedis.get("name"));//执行结果:minxr 
//-----修改数据----------- 
//1、在原来基础上修改 
jedis.append("name","jarorwar");  //很直观,类似map 将jarorwar append到已经有的value之后 
System.out.println(jedis.get("name"));//执行结果:minxrjarorwar 
//2、直接覆盖原来的数据 
jedis.set("name","闵晓荣"); 
System.out.println(jedis.get("name"));//执行结果:闵晓荣 
//删除key对应的记录 
jedis.del("name"); 
System.out.println(jedis.get("name"));//执行结果:null   
/** 
* mset相当于 
* jedis.set("name","minxr"); 
* jedis.set("jarorwar","闵晓荣"); 
*/ 
jedis.mset("name","minxr","jarorwar","闵晓荣");      
System.out.println(jedis.mget("name","jarorwar")); 
} 
/** 
* jedis操作Map 
*/ 
@Test 
public void testMap(){ 
Map<String,String> user=new HashMap<String,String>(); 
user.put("name","minxr"); 
user.put("pwd","password"); 
jedis.hmset("user",user); 
//取出user中的name,执行结果:[minxr]-->注意结果是一个泛型的List 
//第一个参数是存入redis中map对象的key,后面跟的是放入map中的对象的key,后面的key可以跟多个,是可变参数 
List<String> rsmap = jedis.hmget("user", "name"); 
System.out.println(rsmap); 
//删除map中的某个键值 
//    jedis.hdel("user","pwd"); 
System.out.println(jedis.hmget("user", "pwd")); //因为删除了,所以返回的是null 
System.out.println(jedis.hlen("user")); //返回key为user的键中存放的值的个数1 
System.out.println(jedis.exists("user"));//是否存在key为user的记录 返回true 
System.out.println(jedis.hkeys("user"));//返回map对象中的所有key [pwd, name] 
System.out.println(jedis.hvals("user"));//返回map对象中的所有value [minxr, password] 
Iterator<String> iter=jedis.hkeys("user").iterator(); 
while (iter.hasNext()){ 
String key = iter.next();        System.out.println(key+":"+jedis.hmget("user",key)); 
}   
} 
/** 
* jedis操作List 
*/ 
@Test 
public void testList(){ 
//开始前,先移除所有的内容 
jedis.del("java framework"); 
System.out.println(jedis.lrange("java framework",0,-1)); 
//先向key java framework中存放三条数据 
jedis.lpush("java framework","spring"); 
jedis.lpush("java framework","struts"); 
jedis.lpush("java framework","hibernate"); 
//再取出所有数据jedis.lrange是按范围取出, 
// 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有 
System.out.println(jedis.lrange("java framework",0,-1)); 
} 
/** 
* jedis操作Set 
*/ 
@Test 
public void testSet(){ 
//添加 
jedis.sadd("sname","minxr"); 
jedis.sadd("sname","jarorwar"); 
jedis.sadd("sname","闵晓荣"); 
jedis.sadd("sanme","noname"); 
//移除noname 
jedis.srem("sname","noname"); 
System.out.println(jedis.smembers("sname"));//获取所有加入的value 
System.out.println(jedis.sismember("sname", "minxr"));//判断 minxr 是否是sname集合的元素 
System.out.println(jedis.srandmember("sname")); 
System.out.println(jedis.scard("sname"));//返回集合的元素个数 
}   
@Test 
public void test() throws InterruptedException { 
//keys中传入的可以用通配符 
 System.out.println(jedis.keys("*")); //返回当前库中所有的key [sose, sanme, name, jarorwar, foo, sname, java framework, user, braand] 
System.out.println(jedis.keys("*name"));//返回的sname  [sname, name] 
System.out.println(jedis.del("sanmdde"));//删除key为sanmdde的对象 删除成功返回1 删除失败(或者不存在)返回 0 
System.out.println(jedis.ttl("sname"));//返回给定key的有效时间,如果是-1则表示永远有效 
jedis.setex("timekey", 10, "min");//通过此方法,可以指定key的存活(有效时间) 时间为秒 
Thread.sleep(5000);//睡眠5秒后,剩余时间将为<=5 
System.out.println(jedis.ttl("timekey"));  //输出结果为5 
jedis.setex("timekey", 1, "min");    //设为1后,下面再看剩余时间就是1了 
System.out.println(jedis.ttl("timekey")); //输出结果为1 
System.out.println(jedis.exists("key"));//检查key是否存在       System.out.println(jedis.rename("timekey","time")); 
System.out.println(jedis.get("timekey"));//因为移除,返回为null 
System.out.println(jedis.get("time")); //因为将timekey 重命名为time 所以可以取得值 min 
//jedis 排序 
//注意,此处的rpush和lpush是List的操作。是一个双向链表(但从表现来看的) 
jedis.del("a");//先清除数据,再加入数据进行测试 
jedis.rpush("a", "1"); 
jedis.lpush("a","6"); 
jedis.lpush("a","3"); 
jedis.lpush("a","9"); 
System.out.println(jedis.lrange("a",0,-1));// [9, 3, 6, 1] 
System.out.println(jedis.sort("a")); //[1, 3, 6, 9] //输入排序后结果 
System.out.println(jedis.lrange("a",0,-1)); 
} 
} 

Redis会准时 保存数据到硬盘上

澳门新濠3559 6

如上正是作者为我们局促不安的在Windows下实行安装和平运动用Redis的工夫,希望对我们熟习明白Windows下Redis的装置使用全数助于。

您或者感兴趣的作品:

  • Windows操作系统下Redis服务安装图文化教育程
  • PHP7安装Redis增加教程【Linux与Windows平台】
  • Windows下Redis的设置使用教程
  • NoSQL和Redis简要介绍及Redis在Windows下的设置和行使教程
  • 64位Windows下安装Redis教程
  • Windows下安装Redis服务的图像和文字化教育程

编辑:编程 本文来源:可以根据需要下载不同版本,中存储的数据是以

关键词:

  • 上一篇:没有了
  • 下一篇:没有了