redis数据库和python
redis
nosql数据库之一
内存运行,效率极高
key-value
特点:
c/s通信模式
单进程单线程
支持很多数据类型
高并发读写
支持lua脚本
数据持久化
每秒11w次读,8w1k次写
原子,要么成功要么失败
windows下
首先先下载一个phpstudy
这俩都下,然后开启redis服务
然后点开client的管理
不过一般情况下使用命令行来执行redis数据库连接
连接数据库
redis-cli -h 127.0.0.1
连接外部数据库
redis-cli -h [远程数据库的地址] -p 6379
退出
quit
select [数字] //选择哪个数据库
如果让其他人连接你的数据库
需要在redis.windows.conf里添加一个
bind 127.0.0.1
数据库操作
键值对,键不能重复
基本设置值
flushall //清空所有数据
set name test1 //添加一个键值对
get name1 //获得数据
set name2 test2 EX5
setex name2 test2 //设置五秒后失效的键值对
ttl name2 //获取键值对生命周期
mset key1 value1 key2 value2 //同时设置多个键值对
mget key1 key2 同时获得多个键值对
append name1 yao 在name1的值后面增加yao(拼接效果)
键命令
keys [正则表达式]
keys * //取出所有的键
keys ke* //取出所有以ke开头的键
keys name[0-3] //取出name0-3的键
exists name2 //判断name2键是否存在
del name3 删除某一个键
expire name2 5 //设置键几秒过期
hash类型
设置hash类型
hset xiaoming height 180
hset xiaoming weight 60kg
hset xiaoming age 18
获得hash值
hget xiaoming height
获得hash下所有的键值对
hgetall xiaoming
同时设置多个值的hash
hmset xiaohong id 2 weight 120kg height 190
获得hash下所有的key
hkeys xiaohong
查看里面有多少个值
hlen xiaohong
查看里面有多少个value
hvals xiaohong
提取hash特定的key的值
hmget xiaohong id weight
删除hash下特定的键值对
hdel xiaohong id height
删除xiaoming
del xiaohong
list类型
如果lpush是从下往上累加东西,其他运算就是从上往下进行操作
从左往右依次插入数据,此时第0个元素是a1
lpush list1 a1 a2 a3 a4 a5 a6 a7 a8 a9
从右往左依次插入数据,此时第0个元素是a9
rpush list2 a1 a2 a3 a4 a5 a6 a7 a8 a9
从上往下取四个
lrange list1 0 3
取出list1中所有内容
lrange list1 0 -1
取出从上往下的第3个并且值修改为b3
lset list1 2 b3
删除所有a3
lrem [列表] [计数] [值]
如果计数>0,从头到尾搜索值并且删除对应的个数
如果计数<0,从尾倒头搜索值并且删除对应的个数
如果计数=0,就删除所有的对应的值
lrem list2 0 a3
查看列表中第几个元素
index list2 [数字]
查看列表中有多少个值
llen list2
set类型
无序集合,元素唯一,不重复,没有修改操作
创建一个set值
sadd s1 member1 member2 member3
获取s1里所有值
smembers s1
获取s1里有多少个元素
scard s1
删除set中的值
srem s1 member2
取出交集
sinter s1 s2
取并集
sunion s1 s2
取差集
sdiff s1 s2
zset类型
有序集合,元素唯一,不重复,没有修改操作
每个元素关联一个score,也就是权重,从小到大排序
添加元素和对应的权重
zadd zs1 4 xiaoming 5 xiaohong 2 xiaogang