博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis的安装和使用
阅读量:7128 次
发布时间:2019-06-28

本文共 3291 字,大约阅读时间需要 10 分钟。

REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

 

Redis命令参考:http://redisdoc.com/

Redis教学演练:http://try.redis.io/

Redis官网安装:https://redis.io/download


Download

Redis uses a standard practice for its versioning: major.minor.patchlevel. An even minor marks a stable release, like 1.2, 2.0, 2.2, 2.4, 2.6, 2.8. Odd minors are used for unstable releases, for example 2.9.x releases are the unstable versions of what will be Redis 3.0 once stable.

Installation

Download, extract and compile Redis with:

$ wget http://download.redis.io/releases/redis-5.0.3.tar.gz$ tar xzf redis-5.0.3.tar.gz$ cd redis-5.0.3$ make

The binaries that are now compiled are available in the src directory. Run Redis with:

$ src/redis-server

You can interact with Redis using the built-in client:

$ src/redis-cliredis> set foo barOKredis> get foo"bar" 还可以直接使用yum安装:yum install redis。yum安装的redis配置文件位置/etc/redis.conf。相关命令:service redis start|stop|restart…… 日志默认位置:/var/log/redis/ 一、redis-cli远程连接时报下面错误:方法见里面的说明。redis-server默认是安全模式下启动的。 redis-cli -h 2.2.2.2

 

Redis 性能测试

Redis 性能测试是通过同时执行多个命令实现的。

redis-benchmark -n 10000  -q -h 10.157.119.60

 

Redis 数据类型:

string、list、hash、set、有序set

 

Redis客户端工具:pip install redis

redis连接实例是线程安全的,可以直接将redis连接实例设置为一个全局变量,直接使用。如果需要另一个Redis实例(or Redis数据库)时,就需要重新创建redis连接实例来获取一个新的连接。redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池

import redis    # 导入redis模块,通过python操作redis 也可以直接在redis主机的服务端操作缓存数据库pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)   # host是redis主机,需要redis服务端和客户端都起着 redis默认端口是6379r = redis.Redis(connection_pool=pool)r.set('gender', 'male')     # key是"gender" value是"male" 将键值对存入redis缓存print(r.get('gender'))      # gender 取出键male对应的值

 

 

管道(pipeline)

redis默认在执行每次请求都会创建(连接池申请连接)和断开(归还连接池)一次连接操作,如果想要在一次请求中指定多个命令,则可以使用pipline实现一次请求指定多个命令,并且默认情况下一次pipline 是原子性操作。管道(pipeline)是redis在提供单个请求中缓冲多条服务器命令的基类的子类。它通过减少服务器-客户端之间反复的TCP数据库包,从而大大提高了执行批量命令的功能。

import redisimport timepool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)r = redis.Redis(connection_pool=pool)# pipe = r.pipeline(transaction=False)    # 默认的情况下,管道里执行的命令可以保证执行的原子性,执行pipe = r.pipeline(transaction=False)可以禁用这一特性。# pipe = r.pipeline(transaction=True)pipe = r.pipeline() # 创建一个管道pipe.set('name', 'jack')pipe.set('role', 'sb')pipe.sadd('faz', 'baz')pipe.incr('num')    # 如果num不存在则vaule为1,如果存在,则value自增1pipe.execute() # 所谓的原子性是指上面的set、sadd、incr要么全成功,要么全失败print(r.get("name"))print(r.get("role"))print(r.get("num"))

另外一种写法:

pipe.set('hello', 'redis').sadd('faz', 'baz').incr('num').execute()print(r.get("name"))print(r.get("role"))print(r.get("num"))

 

注意python3.5的写法:
r.zadd('zset2', {
'n1':11,'n2':22})可以r.zadd('zset2', n1,11,n2,22)不可以r.mget({
"name1":'zhangsan', "name2":'lisi'})可以r.mset(name1='zhangsan', name2='lisi')不可以

 

 

 

 

 

参考: 1、http://www.runoob.com/redis/redis-tutorial.html

2、https://www.jianshu.com/p/2639549bedc8

3、https://segmentfault.com/a/1190000015191422

4、http://python.jobbole.com/87305/

5、https://juejin.im/post/5a3100b76fb9a04528467c37

6、https://redis.io/download

转载地址:http://lehel.baihongyu.com/

你可能感兴趣的文章
rsync、linux日志、screen
查看>>
【2018.06.06学习笔记】【linux高级知识 12.1-12.5】
查看>>
阿里云全站加速DCDN全面支持WebSocket协议
查看>>
Kafka实战:如何把Kafka消息时延秒降10倍
查看>>
大数据之Linux早课9.12
查看>>
116.k8s介绍、k8s搭建一个应用(mysql+tomcat)
查看>>
iostat-iotop-free-ps-netstat-tcpdump
查看>>
b2b b2c o2o分布式电子商务平台源码 Spring MVC+mybatis+spring cloud
查看>>
解决网站首页老是被篡改经常反复被篡改跳转的问题
查看>>
别人的双11 & 程序员的双11~
查看>>
使用EHPC实现“完美并行”的高效批处理方案
查看>>
jQuery选择器
查看>>
Amazon Alexa 新里程碑: 50000 个功能、 20000 种设备、 3500 个品牌
查看>>
Java 中初始化 List 集合的 6 种方式!
查看>>
黑少微服务商店之Iron Cloud微服务开发云
查看>>
SandboxEscaper又爆出严重零时差漏洞
查看>>
vim Settings
查看>>
Android开发书籍推荐
查看>>
如何在让iis支持aspx?
查看>>
Web服务器的工作原理
查看>>