威尼斯人线上娱乐

Windows下Redis的设置使用图解

5 5月 , 2019  

Windows下Redis的设置使用图解。Redis

一、什么是redis

  • 一.Redis是长途的
    有客户端和服务端,客户端和服务端能够摆放在不相同的机械上,两者经过redis自定义的协商远程传输和互动的,我们一般说的是服务端。默许服务端口为6379。
  • 二.Redis是依靠内部存款和储蓄器的
    负有的操作13分快速,品质优于比基于硬盘的MySQL要快繁多,又因为具备的多寡和组织存款和储蓄于内存中国和澳洲常吃内部存款和储蓄器。
  • 叁.Redis是非关系型数据库
    真相上也是数据库,但MySQL关系型数据仓库储存款和储蓄时务必定义数据词典,而Redis则无需

Redis是三个key-value存储系统。和Memcached类似,它帮衬存款和储蓄的value类型相对越来越多,包罗string(字符串)、list(链表)、set(集合)、zset(sorted
set
–有序集合)和hash(哈希类型)。这一个数据类型都协助push/pop、add/remove及取交集并集和差集及更丰裕的操作,而且那一个操作都以原子性的。在此基础上,redis帮忙各类分化方法的排序。与memcached同样,为了保险效能,数据都以缓存在内部存款和储蓄器中。差距的是redis会周期性的把创新的数量写入磁盘只怕把修改操作写入追加的记录文件,并且在此基础上贯彻了master-slave。

mysql
中存款和储蓄的数量是以文件方式保留在本土硬盘中的,Redis是内部存款和储蓄器告诉缓存数据库。
里头数据类型:string list set sort set hash

2、redis应用场景

  • 1.缓存
    好几系统接口非常慢的时候,能够把部分多少放在Redis中缓存起来,下次取多少就不开始展览丰盛耗费时间的SQL操作了,直接从缓存中取数据,提高系统天性最常用的方法之壹;
  • 2.队列
    Redis 中有list接口,能够存款和储蓄list。 使用Push插入队列的因素, 使用
    Pop来弹出剥退出队伍容貌列的要素,push和pop操作有限补助了原子性的兑现;
  • 三.数额存款和储蓄
    有着的增删改查都以在Redis中开展,Redis有硬盘的持久化机制,定时举办仓库储存,无需依据MySQL举行数量存款和储蓄,保障了数据的完整性和安全性。

因为是首先使用,所以是在windows下开始展览安装和利用,参考了几篇博客,上边整理一下:

持久化功用:在运转的历程中得以把多通判存在本地硬盘中壹份,防止本地服务器断电数据丢失。

三、Redis安装意况

(一)Linux下安装Redis

  • 1、服务器意况
  • 贰、Redis版本下载:http://download.redis.io/releases/
  • 三、预装软件(gcc:c语言编译器,tcl:一种语言)
  • 四、服务端安装步骤
    威尼斯人线上娱乐 ,1)、进入解压后的目录,实行make
    二)、studo make install 将转换的2进制文件放到
    /uer/local/bin目录下
    三)、复制redis.conf到自身钦定的公文夹。 配置redis.conf文件,
    修改daemonize yes 后台运维Redis port 7200(多实例和平安难题)
    4)、启动 redis-server redis.conf
  • 伍、redis客户端的安装
    查看redis客户端 which redis-cli
    登入:redis-cli -h 127.0.0.壹 -p 7000(-h表示IP地址;-p表示端口号)
    redis-cli(暗中认可登入本机637玖端口)
    报到之后info命令查看redis音讯
    (二)windows先安装Redis
  • 一、今后Redis安装包并解压
  • 二、张开Windows的cmd窗口,运维服务器(输入:redis-server.exe
    redis.windows.conf )
  • 三、重启3个cmd窗口,运营客户端(输入:redis-cli.exe -h 1二7.0.0.一 -p
    637玖 )
  • 四、将 redis 服务器运行放入 windows
    服务中,使其开机自动运行(输入:redis-server –service-install
    redis.windows.conf –loglevel verbose)

1.安装Redis

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

4、Redis的四种数据类型

威尼斯人线上娱乐 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
  • 三、set(不可重复)
    添日成分:sadd set一 1二
    看清有稍许个因素:scard set壹
    认清有个别成分是或不是在set里面:sismember set一 1二
    删去有些成分:srem set1 1二

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 hash壹 key一 key二

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 zset一 0 2 withscores
    查看有个别value排行:zrank zset壹 val二
    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私下认可的持久化情势,将内部存款和储蓄器中的数码写入到硬盘的2进制文件中,能够再布局文件中安顿活动快速照相,如:假诺redis在900秒内有超过二个key值发生改动,就能够自行快照;由于快照是每隔一段时间推行一回,因而假设redis意外down掉的话,就能够丢掉部分数据;
![](https://upload-images.jianshu.io/upload_images/4857690-3c13eb07cc5bedaa.png)

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

image.png

官方下载: 能够依附必要下载不一样版本

注意:

默许境况下,若是redis最后三次后中国太平洋保障公司存数据退步,redis就能截止接受写操作,以这种强硬的章程通报用户redis不可能正确持久化到硬盘;

windows版:

威尼斯人线上娱乐 2

威尼斯人线上娱乐 3

github的能源得以ZIP直接下载的(那几个是给不明白的同班友情提示下)。

下载落成后 能够右键解压到 某些硬盘下 比方D:\Redis\redis-2.6。

在D:\Redis\redis-2.6\bin\release下 有两个zip包 一个32位一个64位。

据他们说自个儿windows的位数 解压到D:\Redis\redis-二.陆 根目录下。

2.启动Redis

威尼斯人线上娱乐 4

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

redis-server.exe redis.conf
以此窗口要有限帮助开启  关闭时redis服务会活动关闭

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

三.测试使用

威尼斯人线上娱乐 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会定时 保存数据到硬盘上

威尼斯人线上娱乐 6

上述正是笔者为大家大快朵颐的在Windows下进行安装和行使Redis的手艺,希望对我们理解明白Windows下Redis的设置使用全部协助。

你恐怕感兴趣的稿子:

  • Windows操作系统下Redis服务安装图像和文字化教育程
  • PHP柒安装Redis扩张教程【Linux与Windows平台】
  • Windows下Redis的设置使用教程
  • NoSQL和Redis简单介绍及Redis在Windows下的设置和利用教程
  • 64位Windows下安装Redis教程
  • Windows下安装Redis服务的图像和文字化教育程


相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图