一、Redis的安装

  xshell连上服务器,依次输入以下代码:

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

python操作Redis缓存

 

  如果不巧发生以下截图中的错误:

python操作Redis缓存

  说明未安装gcc,如果是centos系统,输入:yum install gcc安装gcc即可,然后再次输入make执行。

  输入make后,很不幸,再次发生如下截图错误:

python操作Redis缓存

  推测是因为编译库的问题。

  将make改为make MALLOC=libc 再次运行!好事多磨。

python操作Redis缓存

     终于安装成功了!

  还有配置文件的修改什么的先不折腾了,此时已然可以启动Redis服务

src/redis-server # 启动服务端

# 启动客户端的代码如下
src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

python操作Redis缓存

     看到上面的图像,说明服务端已经起来了!

  但是看到很多WARNING,没错,此时你用pycharm写了连接redis服务端的代码,但是你发现服务端竟然没有响应

  OK,在服务端Ctrl + C ,先把服务断开

  分别执行下面的语句:

echo 511 > /proc/sys/net/core/somaxconn
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
sysctl vm.overcommit_memory=1
echo never > /sys/kernel/mm/transparent_hugepage/enabled

  在/etc下的rc.local的最后添加:

echo never > /sys/kernel/mm/transparent_hugepage/enabled

  最后的重点来了,折腾半天还是服务器不鸟我,无奈之下试了试临时关闭防火墙:

service iptables stop 

  唉呀呀,终于成功了!

  我在另一台服务器用了另一种搭建方法:传送门也成功了,但是也不要忘记要临时关掉防火墙。

 python操作Redis缓存

二、Redis的两种连接方式

1.简单连接
import redis
conn = redis.Redis(host='207.148.120.229', port=6379)
conn.set('foo', 'Bar')
print(conn.get('foo'))
a = input('按任意键结束')
2.使用连接池  

  为了减少每次建立、释放连接的开销,推荐使用连接池

  redis使用connection pool来管理对一个redis服务的所有连接。

  多个redis实例可共享一个连接池。

import redis
pool = redis.ConnectionPool(host='207.148.120.229',port=6379)
conn = redis.Redis(connection_pool=pool)

conn.set('key', 'Hello World')
print(conn.get('key'))
a = input('按任意键结束')

python操作Redis缓存

三、五大数据类型

1.String操作  

  redis中的String在在内存中按照一个key对应一个value来存储。以键值对的方式存储。

 python操作Redis缓存

  set(name, value, ex=None, px=None, nx=False, xx=False)

在Redis中设置值,默认,不存在则创建,存在则修改
参数:
     ex,过期时间(秒)
     px,过期时间(毫秒)
     nx,如果设置为True,则只有name不存在时,当前set操作才执行
     xx,如果设置为True,则只有name存在时,当前set操作才执行

import redis
pool = redis.ConnectionPool(host='207.148.120.229',port=6379)
conn = redis.Redis(connection_pool=pool)

conn.set('key', 'Hello World')
print(conn.get('key'))

   mset(*args, **kwargs) 批量设置值

# 批量设置值
import redis
pool = redis.ConnectionPool(host='207.148.120.229',port=6379)
conn = redis.Redis(connection_pool=pool)

conn.mset(k1='v1', k2='v2')
# conn.mset({'k1': 'v1', 'k2': 'v2'})

print(conn.get('k1'))
View Code

相关文章: