1.redis安装
下载完成之后,将压缩包解压到对应的文件夹即可。
然后切换到对应的目录下,cmd进入终端,
输入:
redis-server redis.windows.conf
如果出现以下的画面说明安装成功!
2.修改配置文件
2.1修改redis.windows-service.conf配置文件
在文件中,找到requirepass这一项,在其后面设置redius用户密码。
2.2创建 Logs 文件夹
如果不创建该文件夹的话,启动redis服务时会报错。
3.设置服务
cmd进入终端:输入:
redis-server --service-install redis.windows-service.conf --loglevel verbose
如果没有报错的话,说明服务设置成功,此时,可以在系统界面中找到redis服务,
4.服务的启动与暂停
- 开启服务:redis-server --service-start
- 停止服务:redis-server --service-stop
- 卸载服务:redis-server --service-uninstall
启动服务之后:进入redis的指令:
redis-cli
注意进入redis之后:需要输入密码:要输入以下的指令
auth "你的密码"
4.1设置系统变量
将安装到的目录的路径添加到系统的环境变量里面,这样每次在连接的时候就不需要再进入对应的目录下cmd了!
5.redis操作
-
切换数据库
-
redis数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库
select 10
5.1string类型
如果设置的键不存在则为添加,如果设置的键已经存在则修改
5.1.1设置键值
set key value
例1:设置键为name值为zby的数据
set name zby
5.1.2设置键值及过期时间,以秒为单位
setex key seconds value
例2:设置键为aa值为bb过期时间为3秒的数据
setex aa 3 bb
过期时间为3秒即表示的是3秒之后,该键值对将会在内存中进行释放
5.1.3设置多个键值
mset key1 value1 key2 value2 ...
例3:设置键为a1值为python、键为a2值为java、键为a3值为c
mset a1 python a2 java a3 c
5.1.4追加值
append key value
例4:向键为a1中追加值haha
会直接在a1这个键所对应的值后面进行追加。比如说:原来的键值对是
“a1”:“a” 那么追加完之后为:“a1”:“ahaha”
append a1 haha
5.1.5获取值
获取:根据键获取值,如果不存在此键则返回nil
get key
例5:获取键name的值
get name
根据多个键获取多个值
mget key1 key2 ...
例6:获取键a1、a2、a3的值
mget a1 a2 a3
5.2键命令
5.2.1查找键,参数⽀持正则表达式
keys pattern
例1:查看所有键
keys *
例2:查看名称中包含a的键
keys a*
5.2.2 判断键是否存在,
如果存在返回1,不存在返回0
exists key1
例3:判断键a1是否存在
exists a1
5.2.3查看键对应的value的类型
type key
例4:查看键a1的值类型,为redis⽀持的五种类型中的⼀种
type a1
5.2.4删除键及对应的值
del key1 key2 ...
例5:删除键a2、a3
del a2 a3
5.2.5设置键过期时间(键值对已经创建时)
以秒为单位
如果没有指定过期时间则⼀直存在,直到使⽤DEL移除
expire key seconds
例6:设置键a1的过期时间为3秒
expire a1 3
5.2.6查看键值对有效时间,以秒为单位
ttl key
例7:查看键bb的有效时间
ttl bb
5.3hash
hash⽤于存储对象,对象的结构为属性、值
值的类型为string
5.3.1增加,修改hash操作
设置单个属性
hset key field value
例1:设置键 user的属性name为zby
hset user name zby
设置多个属性
hmset key field1 value1 field2 value2 ...
例2:设置键u2的属性name为zby、属性age为11
hmset u2 name zby age 11
5.3.2获取
获取指定键所有的属性
hkeys key
例3:获取键u2的所有属性
hkeys u2
获取⼀个属性的值
hget key field
例4:获取键u2属性name的值
hget u2 name
获取多个属性的值
hmget key field1 field2 ...
例5:获取键u2属性name、age的值
hmget u2 name age
获取所有属性的值
hvals key
例6:获取键u2所有属性的值
hvals u2
5.3.3删除
删除整个hash键及值,使⽤del命令
删除属性,属性对应的值会被⼀起删除
hdel key field1 field2 ...
例7:删除键u2的属性age
hdel u2 age
5.4list
列表的元素类型为string
按照插⼊顺序排序
5.4.1增加
在左侧插⼊数据
lpush key value1 value2 ...
例1:从键为a1的列表左侧加⼊数据a 、 b 、c
lpush a1 a b c
在右侧插⼊数据
rpush key value1 value2 ...
例2:从键为a1的列表右侧加⼊数据0、1
rpush a1 0 1
在指定元素的前或后插⼊新元素
linsert key before或after 现有元素 新元素
例3:在键为a1的列表中元素b前加⼊3
linsert a1 before b 3
5.4.2获取
返回列表⾥指定范围内的元素
- start、stop为元素的下标索引
- 索引从左侧开始,第⼀个元素为0
- 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素
lrange key start stop
例4:获取键为a1的列表所有元素
lrange a1 0 -1
5.4.3设置指定索引位置的元素值
- 索引从左侧开始,第⼀个元素为0
- 索引可以是负数,表示尾部开始计数,如-1表示最后⼀个元素
lset key index value
例5:修改键为a1的列表中下标为1的元素值为z
lset a1 1 z
5.4.4删除
删除指定元素
- 将列表中前count次出现的值为value的元素移除
- count > 0: 从头往尾移除
- count < 0: 从尾往头移除
- count = 0: 移除所有
lrem key count value
例6.1:向列表a2中加⼊元素a、b、a、b、a、b
lpush a2 a b a b a b
例6.2:从a2列表右侧开始删除2个b
lrem a2 -2 b
例6.3:查看列表a2的所有元素
lrange a2 0 -1
5.5set类型
⽆序集合
元素为string类型
元素具有唯⼀性,不重复
说明:对于集合没有修改操作
5.5.1增加
添加元素
sadd key member1 member2 ...
例1:向键a3的集合中添加元素zhangsan、lisi、wangwu
sadd a3 zhangsan sili wangwu
5.5.2获取
返回所有的元素
smembers key
例2:获取键a3的集合中所有元素
smembers a3
5.5.3删除
删除指定元素
srem key
例3:删除键a3的集合中元素wangwu
srem a3 wangwu
5.6zset类型
sorted set,有序集合
元素为string类型
元素具有唯⼀性,不重复
每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序
说明:没有修改操作
5.6.1增加
添加
zadd key score1 member1 score2 member2 ...
例1:向键a4的集合中添加元素lisi、wangwu、zhaoliu、zhangsan,权重分别为4、5、6、3
zadd a4 4 lisi 5 wangwu 6 zhaoliu 3 zhangsan
5.6.2获取
返回指定范围内的元素
start、stop为元素的下标索引
索引从左侧开始,第⼀个元素为0
索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素
zrange key start stop
例2:获取键a4的集合中所有元素
zrange a4 0 -1
返回score值在min和max之间的成员
zrangebyscore key min max
例3:获取键a4的集合中权限值在5和6之间的成员
zrangebyscore a4 5 6
返回成员member的score值
zscore key member
例4:获取键a4的集合中元素zhangsan的权重
zscore a4 zhangsan
5.6.3删除
删除指定元素
zrem key member1 member2 ...
例5:删除集合a4中元素zhangsan
zrem a4 zhangsan
删除权重在指定范围的元素
zremrangebyscore key min max
例6:删除集合a4中权限在5、6之间的元素
zremrangebyscore a4 5 6
6.redis与python操作
6.1安装
pip install redis
6.2调⽤模块
引⼊模块
from redis import StrictRedis
这个模块中提供了StrictRedis对象,⽤于连接redis服务器,并按照不同类型提供 了不同⽅法,进⾏交互操作
6.2.1StrictRedis对象⽅法
通过init创建对象,指定参数host、port与指定的服务器和端⼝连接,host默认为localhost,port默认为6379,db默认为0
sr = StrictRedis(host='localhost', port=6379, db=0)
根据不同的类型,拥有不同的实例⽅法可以调⽤,与前⾯学的redis命令对应,⽅法需要的参数与命令的参数⼀致
6.3操作string
导入:
from redis import *
if __name__=="__main__":
try:
#创建StrictRedis对象,与redis服务器建⽴连接
sr=StrictRedis()
except Exception as e:
print(e)
string-增加
- ⽅法set,添加键、值,如果添加成功则返回True,如果添加失败则返回False
- 编写代码如下:
from redis import *
if __name__=="__main__":
try:
#创建StrictRedis对象,与redis服务器建⽴连接
sr=StrictRedis()
#添加键name,值为zby
result=sr.set('name','zby')
#输出响应结果,如果添加成功则返回True,否则返回False
print(result)
except Exception as e:
print(e)
string-获取
- ⽅法get,添加键对应的值,如果键存在则返回对应的值,如果键不存在则返回None
- 编写代码如下
from redis import *
if __name__=="__main__":
try:
#创建StrictRedis对象,与redis服务器建⽴连接
sr=StrictRedis()
#获取键name的值
result = sr.get('name')
#输出键的值,如果键不存在则返回None
print(result)
except Exception as e:
print(e)
string-修改
- ⽅法set,如果键已经存在则进⾏修改,如果键不存在则进⾏添加
- 编写代码如下
from redis import *
if __name__=="__main__":
try:
#创建StrictRedis对象,与redis服务器建⽴连接
sr=StrictRedis()
#设置键name的值,如果键已经存在则进⾏修改,如果键不存在则进⾏添加
result = sr.set('name','zby')
#输出响应结果,如果操作成功则返回True,否则返回False
print(result)
except Exception as e:
print(e)
string-删除
- ⽅法delete,删除键及对应的值,如果删除成功则返回受影响的键数,否则则返 回0
- 编写代码如下
from redis import *
if __name__=="__main__":
try:
#创建StrictRedis对象,与redis服务器建⽴连接
sr=StrictRedis()
result = sr.delete('name')
#输出响应结果,如果删除成功则返回受影响的键数,否则则返回0
print(result)
except Exception as e:
print(e)
获取键
- ⽅法keys,根据正则表达式获取键
- 编写代码如下
from redis import *
if __name__=="__main__":
try:
#创建StrictRedis对象,与redis服务器建⽴连接
sr=StrictRedis()
#获取所有的键
result=sr.keys()
#输出响应结果,所有的键构成⼀个列表,如果没有键则返回空列表
print(result)
except Exception as e:
print(e)