一.redis的安装
redis是一个基于内存的key-value数据库,支持的数据类型有string、hash、list和set以及zset。这些数据类型都支持push/pop、add/remove等操作,这些操作都是原子性的。因此可以实现高并发的数据访问。
1.将下载的zip文件放在某个文件夹中,如D:\redis中然后解压,打开cmd,进入redis所在的文件夹中,输入redis-server redis.windows.conf,出现如下图所示的结果说明redis启动成功。
2.虽然步骤1启动了redis,但是cmd一关,redis就会消失。所以最好的办法就是把redis设置成windows服务。具体步骤如下:
- 关闭刚才代开的cmd窗口,重新打开一个,进入redis目录。
- 输入redis-server --service-install redis.windows-service.conf --loglevel verbose。
成功后结果如下图所示。
3.Windows-redis服务的启动、停止、卸载
- 启动:redis-server --service-start
- 停止:redis-server --service-stop
- 卸载:redis-server --service-uninstall
二.修改redis的配置
1.修改redis密码
在默认的情况下,访问redis数据库一般是不需要密码的。但是为了增强安全性,我们可以设置redis的密码,设置为123456.
打开redis文件夹中的redis.windows-service.conf,在其中取消requirepass的注释,将他的变量设置为123456,如下图所示。
2.设置远程访问
打开redis文件夹中的redis.windows-service.conf,将其中的bind变量注释掉。如下图。
修改完成后使用如下命令登录redis数据库
redis-cli –a redisredis –h ip –p 密码。
三.redis常用命令
1.删除delete(*name)
删除redis中的一个键值对,可以是任意的数据类型(string、hash、set、zset、list)
import redis
r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.set('name','male') # 设置string类型的数据
print(r.get('name')) #读取结果为male
r.delete('name') # 删除设定的string数据
print(r.get('name')) # None
r.hset('hash1','name','male') # 设置hash类型的数据
print(r.hget('hash1','name')) #读取结果为male
r.delete('hash1','name') # 删除设定的hash数据
print(r.hget('hash1','name')) # None
r.lpush('list1','name','male','www') # 设置list类型的数据
print(r.lrange('list1',0,-1)) #读取结果为['www', 'male', 'name']
r.delete('list1','name') # 删除设定的hash数据
print(r.lrange('list',0,-1)) # []
2.确认exists(name)
检测name是否存在,存在为TRUE,不存咋为false.
import redis
r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.set('name','male') # 设置string类型的数据
print(r.exists('name')) #读取结果为True
r.delete('name') # 删除设定的string数据
print(r.exists('name')) # false
3.模糊匹配keys(patter=’’)
根据模型patter返回结果,是正则表达式匹配。
import redis
r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.set('name','male') # 设置string类型的数据
print(r.keys(pattern='n?me')) #读取结果为['name']
4.设置超时时间expire(name,time)
为name设置超时时间,单位是秒。
import redis,time
r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.set('name','male')
r.expire('name',3)
print(r.get('name')) # male
time.sleep(3) # 等待3秒
print(r.get('name')) # None
5. 移除设置的超时时间persist(name,time)
import redis,time
r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.lpush('list1',11,12,13)
r.expire('list1',3) # 设置过期时间
r.persist('list1') # 取消过期时间
print(r.lrange('list1',0,-1)) # ['13', '12', '11']
6.重命名rename(src,dst)
src:旧名称 dst:新名称
import redis,time
r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.lpush('list1',11,12,13)
r.rename('list1','list1_new')
print(r.lrange('list1',0,-1)) # []
print(r.lrange('list1_new',0,-1)) # ['13', '12', '11']
7.随机获取数据randomkey()
import redis,time
r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.lpush('list1',11,12,13)
r.lpush('list2',11,12,13)
print(r.randomkey()) # list1
print(r.randomkey()) # testname
8. 获取数据类型type()
print(type('list1'))