一、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
如果不巧发生以下截图中的错误:
说明未安装gcc,如果是centos系统,输入:yum install gcc安装gcc即可,然后再次输入make执行。
输入make后,很不幸,再次发生如下截图错误:
推测是因为编译库的问题。
将make改为make MALLOC=libc 再次运行!好事多磨。
终于安装成功了!
还有配置文件的修改什么的先不折腾了,此时已然可以启动Redis服务
src/redis-server # 启动服务端 # 启动客户端的代码如下 src/redis-cli redis> set foo bar OK redis> get foo "bar"
看到上面的图像,说明服务端已经起来了!
但是看到很多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
唉呀呀,终于成功了!
我在另一台服务器用了另一种搭建方法:传送门也成功了,但是也不要忘记要临时关掉防火墙。
二、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('按任意键结束')
三、五大数据类型
1.String操作
redis中的String在在内存中按照一个key对应一个value来存储。以键值对的方式存储。
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'))