【美高梅手机版4858】Redis在Windows下安装和PHP中利用,redis操作方法

By admin in 美高梅手机版4858 on 2019年4月3日

一、Redis API支持

Redis提供了各类开发语言的API,方便开发语言连接使用Redis。
https://redis.io/clients
官方网站提供了不同开发语言的API程序。

美高梅手机版4858 1

下一篇:C#
Redis学习体系二:Redis基本设置

模块安装:

Redis在Windows下安装和PHP中应用

1、redis简介
redis是四个key-value存款和储蓄系统。和Memcached类似,它支持存款和储蓄的value类型相对更加多,包含string(字符串)、list(链表)、set(集合)、zset(sorted
set
–有序集合)和hashs(哈希类型)。那一个数据类型都扶助push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这几个操作皆以原子性的。在此基础上,redis扶助各类差异措施的排序。与memcached一样,为了保障功效,数据都以缓存在内部存款和储蓄器中。分化的是redis会周期性的把创新的数目写入磁盘也许把修改操作写入追加的记录文件,并且在此基础上落实了master-slave(主从)同步。

Redis 是3个高品质的key-value数据库。
redis的出现,相当的大程度补偿了memcached那类key/value存款和储蓄的欠缺,在某个场面能够对关周密据库起到很好的补充功能。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。

2、Windows下安装redis
【美高梅手机版4858】Redis在Windows下安装和PHP中利用,redis操作方法。下载地址

开拓八个cmd窗口,使用cd命令切换来内定目录(D:\dev\redis-2.四.5)运转redis-server.exe redis.conf 。运转之后现身如下界面。

美高梅手机版4858 2

那就认证Redis服务端已经安装成功。

双重打开一个cmd窗口,使用cd命令切换来钦定目录(D:\dev\redis-2.④.伍)运转redis-cli.exe -h 1二7.0.0.一 -p 637玖,在那之中12柒.0.0.一是本地ip,637九是redis服务端的暗中认可端口。启动成功如下图所示。
这么,Redis windows环境下搭建已经成功,是还是不是相当粗略。

美高梅手机版4858 3

诸如此类,Redis windows环境下搭建已经做到,是否一点也不细略。

环境已经搭建好,总得测试下呢。比如:存款和储蓄二个key为test,value为hello
word的字符串,然后拿走key值。

美高梅手机版4858 4

正确输出 hell word,测试成功!

3、PHP中使用

下载 dll文件

php_redis.dll 扩展 For PHP5.4.x

PHP5.4.x 的 redis 扩展 php_redis.dll

测试平台:Windows XPx3二 (法斯特CGI PHP伍.肆.玖 Nginx 壹.肆.0)

含蓄 Non Thread Safe 和 Thread Safe 七个本子

首先把php_redis.dll 和 php_美高梅手机版4858,igbinary.dll
放入PHP的ext文件夹,然后在php.ini配置文件里添加如下代码:

extension=php_igbinary.dll

extension=php_redis.dll

重启web服务器

注意:extension=php_igbinary.dll一定要放在extension=php_redis.dll的前头,不然此扩张不会收效

4、PHP中使用

代码如下

<?php
    $redis = new Redis();
    $redis->connect(‘127.0.0.1’,6379);
    $redis->set(‘test’,’hello redis’);
    echo $redis->get(‘test’);
?>

输出 hello  redis 成功!

Ubuntu 1四.04下Redis安装及简便测试

Redis集群明细文书档案

Ubuntu 1二.10下安装Redis(图像和文字详解)+ Jedis连接Redis

Redis连串-安装配备维护篇

CentOS 6.3安装Redis

Redis安装配备学习笔记

Redis配置文件redis.conf 详解

Redis 的事无巨细介绍:请点那里
Redis 的下载地址:请点那里

本文永久更新链接地址:

壹、redis简介
redis是1个key-value存款和储蓄系统。和Memcached类似,它援助存款和储蓄的value类型相对越多,包罗string(字符串…

Python连接redis

https://redis.io/clients#python

官网中,给我们提供了很多种Python连接redis的API,我们通常选择有“笑脸”并且带有“星号”的使用
这里我们推荐使用redis-py.

美高梅手机版4858 5

一.认识Redis

数码操效率到的模块pymysql,须求通过pip install pymysql进行安装。

redis-py安装格局

redis-py requires a running Redis server. See Redis's quickstart for installation instructions.

To install redis-py, simply:

$ sudo pip install redis
or alternatively (you really should be using pip though):

$ sudo easy_install redis
or from source:

$ sudo python setup.py install
  1. Redis 是3个高品质的key-value数据库。

redis操作用的模块是redis,要求经过pip install redis进行设置。

Python连接Redis

redis-py提供的,python 连接及操作redis方式:
    redis-py提供两个类Redis和StrictRedis用于实现Redis的命令。StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令(比如,SET命令对应与StrictRedis.set方法)。
    Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。 
    简单说,官方推荐使用StrictRedis方法。不推荐Redis类,原因是他和咱们在redis-cli操作有些不一样,主要不一样是下面这三个方面。

二.
它协理存款和储蓄的value类型相对越多,包罗string(字符串)、list(链表)、set(集合)、zset(sorted
set –有序集合)和hash(哈希类型)。

查实是还是不是安装成功:进入到Python命令行格局,输入import pymysql、 import
redis ,无报错代表成功;

redis连接分片集群

(1) redis-py并没有提供redis-cluster的支持,去github找了一下,有个叫redis-py-cluster的源码,
但是和redis-py不是一个作者,地址为:https://github.com/Grokzen/redis-py-cluster
watch,star,fork还算可以。
(2) 安装
   Latest stable release from pypi
$ pip install redis-py-cluster  
    or from source
$ python setup.py install
(3) 使用
>>> from rediscluster import StrictRedisCluster  
>>> startup_nodes = [{"host": "127.0.0.1", "port": "7000"}]  
>>> # Note: decode_responses must be set to True when used with python3  
>>> rc = StrictRedisCluster(startup_nodes=startup_nodes, decode_responses=True)  
>>> rc.set("foo", "bar")  
True  
>>> print(rc.get("foo"))  
'bar'

3.周期性的把立异的数码写入磁盘只怕把修改操作写入追加的记录文件

mysql操作方法如下:

python连接redis sentinel

>>> from redis.sentinel import Sentinel  
>>> sentinel = Sentinel([('localhost', 26379)], socket_timeout=0.1)  
>>> sentinel.discover_master('mymaster')  
('127.0.0.1', 6379)  
>>> sentinel.discover_slaves('mymaster')  
[('127.0.0.1', 6380)]  
>>> master = sentinel.master_for('mymaster', socket_timeout=0.1)  
>>> slave = sentinel.slave_for('mymaster', socket_timeout=0.1)  
>>> master.set('foo', 'bar')  
>>> slave.get('foo')  
'bar'

四.别人说的 比我好
Redis百度百科

查询数据:fetchone、fetchmany(n)、fetchall()

Python String类型使用简介

String类型基本操作:
r.set('foo', 'Bar')
print (r.get('foo'))

r.mset(k1="v1",k2="v2")
r.mget('k1','k2')

r.incr('num')
r.get('num')
r.incr('num')
r.get('num')

二.下载

import pymysql
#建立mysql连接,ip、端口、用户名、密码(passwd,不能写成其他,例如:pwd或者p,否则报错)、库名
conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', db='szz', port=3306, charset='utf8')
#创建游标
cur = conn.cursor(cursor=pymysql.cursors.DictCursor) #指定cursor的类型为字典,返回结果类型是字典,不再是元组
#执行sql,返回值是int,查询出来的结果有几条
cur.execute('select * from test')
#获取第一条数据,游标cur所在的位置为1,游标从0开始,查询结果类型为:字典
row_1 = cur.fetchone()
cur.scroll(0, mode='absolute')  #将游标移动到初始位置
#获取前n行数据
row_2 = cur.fetchmany(n)
cur.scroll(0, mode='absolute')  #将游标移动到初始位置
#获取所有数据,返回结果类型是:list,里面元素是字典
row_3 = cur.fetchall()
cur.scroll(0, mode='absolute')  #将游标移动到初始位置
print(row_2)
#关闭游标
cur.close()
#关闭连接
conn.close()

Python hash类型使用简介

#插入hash类型键值
r.hset("hash1", "k1", "v1")
r.hset("hash1", "k2", "v2")
# 取hash中所有的key
print(r.hkeys("hash1"))     
# 单个取hash的key对应的值        
print(r.hget("hash1", "k1"))
# 多个取hash的key对应的值
print(r.hmget("hash1", "k1", "k2"))
#批量设置
r.hmset("hash2", {"k2": "v2", "k3": "v3"})
#批量取出 
print(r.hget("hash2", "k2"))              # 单个取出"hash2"的key-k2对应的value
print(r.hmget("hash2", "k2", "k3"))      # 批量取出"hash2"的key-k2 k3
print(r.hmget("hash2", ["k2", "k3"]))     # 批量取出"hash2"的key-k2 k3对应的value 
#取出所有的键值对
hgetall(name)

为了合作自个儿的课程,我推荐下载
redis-2.8.2400

扩大、更新、删除数据

Python list类型使用简介

#设置列表:
r.lpush("list1", 11, 22, 33)
#查询列表所有值
print(r.lrange('list1', 0, -1))
# 表示从右向左设置列表
r.rpush("list2", 11, 22, 33)
# 列表长度
print(r.llen("list2"))
# 切片取出值,范围是索引号0-3
print(r.lrange("list2", 0, 3))

三.怎么设置

import pymysql
#建立mysql连接
conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', db='szz', port=3306, charset='utf8')
#创建游标
cur = conn.cursor(cursor=pymysql.cursors.DictCursor) #指定cursor的类型为字典,返回结果类型是字典,不再是元组
#执行sql
sql = 'insert into test values(5, "断点", "e10adc3949ba59abbe56e057f20f883e")'
sql_update = 'update test set name="薛之谦" where id=2 '
sql_del = 'delete from test where id = 3'
cur.execute(sql_del)
#insert、update、delete语句需要进行commit,否则无法保证修改或者新建的数据
conn.commit()
#关闭游标
cur.close()
#关闭连接
conn.close()

Python set类型应用简介

# 往集合中添加元素
r.sadd("set1", 33, 44, 55, 66)
# 集合的长度是4
print(r.scard("set1"))
# 获取集合中所有的成员
print(r.smembers("set1"))

咳咳.作者下载的时候便是人家打包好的如图:(依照自个儿的种类采纳)

cursor的周旋、相对地点移动

Python sort set类型应用简介

#对应的有序集合中添加元素
r.zadd("zset1", n1=11, n2=22)
r.zadd("zset2", 'm1', 22, 'm2', 44)
# 集合长度
print(r.zcard("zset1"))
# 集合长度
print(r.zcard("zset2"))
# 获取有序集合中所有元素
print(r.zrange("zset1", 0, -1))
 # 获取有序集合中所有元素和分数2
print(r.zrange("zset2", 0, -1, withscores=True))

更多内容请看:《Redis for Python开发手册》

 

美高梅手机版4858 6

import pymysql
#建立mysql连接
conn = pymysql.connect(host='192.168.3.66', user='root', passwd='123456', db='szz', port=3306, charset='utf8')
#创建游标
cur = conn.cursor(cursor=pymysql.cursors.DictCursor) #指定cursor的类型为字典,返回结果类型是字典,不再是元组
num = cur.execute('select * from testlhl')
print(num)                      #返回结果是int类型

row_1 = cur.fetchone()       # 此时游标的位置在1,数据库取值从0下标开始,获取数据库第一条数据
cur.scroll(2, mode='absolute')   #absolute绝对位置,直接是将游标从0位置移动到指定的位置2
row_2 = cur.fetchone()       #读取数据库第3条数据,游标在3位置
cur.scroll(2, mode='relative')   #relative相对位置,相对于游标当前所在位置,进行移动,移动1位,游标在4位置,若相对移动的位置超过下标,则报out of range
row_3 = cur.fetchone()       #读取第5条数据
#关闭游标
cur.close()
#关闭连接
conn.close()

二.双击打开redis-server.exe

mysql的增加和删除改查公共措施,代码如下:

美高梅手机版4858 7

def getconn(host, user, passwd, db, sql, port=3306,charset='utf8'):
  conn = pymysql.connect(host=host, user=user, passwd=passwd, port=port, db=db, charset=charset) #建立连接
  cur = conn.cursor(cursor=pymysql.cursors.DictCursor)    #建立游标并指定游标类型
  cur.execute(sql)                      #执行sql
  if sql.startswith('select'):                #判断sql是否是select
    res = cur.fetchone()
  else:
    conn.commit()                      #insert\delete\update语句执行完毕后需要进行commit
    res = 88
  cur.close()                         #关闭游标
  conn.close()                        #关闭连接
  return res

叁.大家再去下载三个可视化的客户端吧:

redis操作方法如下:

redisclient-win32.x八六.一.伍 下载链接:
密码: tkqy

key的体系是string,进行set操作,格局{key, value},如下:

四.开拓服务器后暗许的ip和端口是 1贰七.0.0.一:637九(无密码)

import redis
db = 0
#连接redis,password不简写(否则或报错),db若不写,则默认操作db0
conn_redis = redis.Redis(host='127.0.0.1', port=6379, password='123456', db=db)
#给redis添加值,传值方式是key-value,key不可重复,value的形式尽量是string,也可以传list、字典,redis内存放的是字节res = conn_redis.set('name', 'testredis')
#print(res)  #返回值是布尔类型,set成功,则返回true
conn_redis.set('days', '[10,4,5,12,44]')

#set key值到redis内,且可以设置过期时间,10s
result = conn_redis.setex('session', 'abcder1233@sdfrr', 10)  #单位是s
print(result)  #返回值是布尔类型,set成功,则返回true

#批量插入redis,可以写入多个key-valye
conn_redis.mset(a='xiaohei', b='xiaobai', c='xiaohuang') 
#设置key时,可以设置文件夹,user文件夹,key:test,value:haha
conn_redis.set('user:test','haha')

美高梅手机版4858 8

获得redis内的数码,通过key值实行获取

四.redis 服务(以window 服务安装)

import redis
import json
db = 0
#连接redis,password不简写(否则或报错),db若不写,则默认操作db0
conn_redis = redis.Redis(host='127.0.0.1', port=6379, password='123456', db=db)
#获取redis的值,返回结果类型是bytes
res = conn_redis.get('abcd')
#使用decode()将bytes类型转换为字符串:输出>>>>>testredis
new_res = res.decode()
#使用json的loads,将json串(字符串)转换为字典
dic_res = json.loads(new_res)

#获取不存在的key,返回结果为None
res1 = conn_redis.get('asdfg')
print(res1.decode())    #输出>>>>>>'NoneType' object has no attribute 'decode'

#获取所有的keys,且循环遍历进行输入,使用decode()转换为字符串
list_keys = conn_redis.keys()
for key in list_keys:
  print(key.decode())

#获取所有的key中以n开头的key,返回结果类型是list,元素类型是bytes 输出>>>>>[b'nbeee', b'name', b'nest']
print(conn_redis.keys('n*'))

一.按住 Shift键+ 鼠标右键 如下图:

删除redis内的值,通过key删除

美高梅手机版4858 9

import redis
db = 0
#连接redis,password不简写(否则或报错),db若不写,则默认操作db0
conn_redis = redis.Redis(host='192.168.3.66', port=6379, password='123456', db=db)
#删除存在的key,删除key后,redis内不存在该key,返回结果为1,删除了一个key
res = conn_redis.delete('a')
#删除不存在的key,返回结果为0,没有删除key
res1 = conn_redis.delete('d')
#删除多个key,返回结果n, 删除了几个key就返回数字几
asdf = conn_redis.delete('a', 'b', 'c')
print(asdf)

二.设置 Redis服务 设置端口 为6666

key的档次是hash,进行set操作,情势:{key,{key壹,value}}如下

安装服务: redis-server –service-install
–service-name redisService666陆 –port 666陆

import redis
db = 0
#连接redis,password不简写(否则或报错),db若不写,则默认操作db0
conn_redis = redis.Redis(host='192.168.3.66', port=6379, password='123456', db=db)
#hash类型的key,模式{name,{key,value}},里面key不能重复,返回值为int
res = conn_redis.hset('user_session', 'lhl', 'sunny')
#hash类型的key,添加值时也可以设置文件夹
conn_redis.hset('session:redis_test', 'age', 18)

起步进程: redis-server –service-start
–service-name redisService6666

key的品种是hash,进行get操作,如下

停下进程: redis-server –service-stop
–service-name redisService666陆

import redis
db = 0
#连接redis,password不简写(否则或报错),db若不写,则默认操作db0
conn_redis = redis.Redis(host='192.168.3.66', port=6379, password='123456', db=db)
#获取hash类型中的某个name下的某个key对应的value ,获取指定name里面的key的值,返回结果类似是bytes
res = conn_redis.hget('user_session', 'week')
#获取hash类型中name里面所有的key,返回结果是字典>>>>>输出:{b'test': b'sunny', b'week': b'sunny'}
all = conn_redis.hgetall('user_session')

美高梅手机版4858 10

key的品类是hash,进行delete操作,如下

三.查看 调出职责管理器

import redis
db = 0
#连接redis,password不简写(否则或报错),db若不写,则默认操作db0
conn_redis = redis.Redis(host='192.168.3.66', port=6379, password='123456', db=db)
#hash类型的key,删除整个key, delete(name),返回结果为1
res = conn_redis.delete('user_session')
#hash类型的key,删除指定name里的key,若删除的key或者name不存在,则返回0
res = conn_redis.hdel('user_session', 'week')

美高梅手机版4858 11

redis的set、get公共操作方法如下

4.连接 Redis服务

def opRedis(host, password, key, value=None, port=6379,db=0):   #redis操作时需要传入key\value
  conn_redis = redis.Redis(host=host, password=password, port=port, db=db)  #获取redis连接
  if value:              #判断value是否传值,如果不为None,则是set
    conn_redis.setex(key, value, 60)  #设置key的过期时间,60s
    res = 88
  else:
    res = conn_redis.get(key).decode()   #将从redis内读取的值,由bytes转换为字符串
  return res

美高梅手机版4858 12

以上那篇python笔记:mysql、redis操作方法就是作者分享给大家的全体内容了,希望能给我们四个参考,也期望我们多多支持脚本之家。

5.使用 redis-cli.exe 连接redis 服务

您恐怕感兴趣的作品:

  • Python实现的redis分布式锁功效示例
  • Python操作Redis之设置key的晚点时间实例代码
  • python完结redis三种cas事务操作
  • Python
    用Redis简单达成分布式爬虫的章程
  • python脚本实现Redis未授权批量提权
  • 在Python中利用AOP完毕Redis缓存示例
  • python操作redis的方法
  • Redis的Python客户端redis-py安装使用表明文书档案
  • Python与Redis的连日教程
  • Python读写Redis数据库操作示例
  • python操作redis方法总括

连日来指令:redis-cli.exe -h 1贰7.0.0.一 -p 666陆

美高梅手机版4858 13

6.卸载 Redis 服务

停下进程:redis-server –service-stop
–service-name redis瑟维斯666陆

卸载命令:sc delete redisService666陆

美高梅手机版4858 14

上述就是本文的全体内容,希望对大家的读书抱有帮忙,也希望大家多多援助脚本之家。

您只怕感兴趣的篇章:

  • NoSQL和Redis简介及Redis在Windows下的安装和利用教程
  • Windows下Redis的设置使用图解
  • redis安装、配置、使用和redis
    php扩张安装教程
  • Redis的Python客户端redis-py安装使用表明文书档案
  • Windows下Redis的安装使用教程
  • python安装与运用redis的法子
  • python中redis的装置和选用
  • Windows下安装Redis及使用Python操作Redis的方法
  • Django中redis的应用方法(蕴涵安装、配置、运维)
  • linux安装配置及使用redis
  • Redis安装与利用情势小结

发表评论

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

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有