官网:http://redis.io
中文网站:http://redis.cn
注册服务
redis-server –service-install E:\SoftWares\WorkSofts\Redis3.2\redis.windows-service.conf
配置文件
redis中的数据类型
redis的数据存储:key=value 键值对
key的数据类型:字符串
value的数据类型:
string字符串
hash哈希
list列表
set集合
zset有序集合
基本操作
cmd –>window+r –>redis-server
cmd–>window+r–>redis-cli
字符串
设置 名字 如果对已有的key name设置值 那么将会把之前的值覆盖掉
set name "yangyong"
得到名字
get name
设置name age gender的值
mset name yy age 27 gender man
得到 name age gender的值
mget name age gender
设置10秒后yy无效
setex name 10 yy
对key为age的值加1
incr age
对key为age的值加20
incrby age 20
对key为age的值减1
decr age
对key为age的值减20
decrby age 20
在key为name对应的值后面拼接yong
append name yong
查看name的长度
strlen name
查看所有的key
keys *
是否存在key为yy的值
exsits yy
获取key对应的值的类型
type name
key 为name 的值存在10秒
expire name 10
其实setex 和 set + expire 的效果和
查看name所剩下的有效时间 如果 时间等于-2 则表示已经失效 如果 时间等于-1则表示永不失效
ttl name
删除age键值对
del age
hash 对象
给u1添加一个id 值为1
hset u1 id 1
给u1 的值在添加一个字段 name 且值为yy
hset u1 name yy
得到u1中的id的值
hget u1 id
得到u1中的name id gender字段
hmget u1 name id gender
获取所有的属性和值
hgetall u1
获取所有的key值
hkeys u1
获取所包含属性的个数
hlen u1
获取所有的值
hvals u1
是否存在name这个key
hexists u1 name
根数属性名称删除属性及值
hdel u1 name
返回值的字符串长度
hstrlen u1 gender
list列表 有序存储多个数据
从列表的头部增加多个数据
向名称为list的集合从左侧压入数据 也就是说第一个进入list列表的数据会被放到 最右侧 最后进来的数据在最左侧
lpush list abc def ghi jkl
从列表的尾部增加多个数据
向名称为list的集合从右侧压入数据 也就是说第一个进入list列表的数据会被放到 最左侧 最后进来的数据在最右侧
rpush list abc def ghi jkl
返回存在在可以列表中指定范围的数据 知道列表的末尾 不会发生越界的问题
lrang list 0 10
删除并且获取key对应的list第一个元素
lpop list
删除并获取key对应的list的最后一个元素
rpop list
set集合:无序存储多个数据
sadd key value [value] :添加多个数据到可以集合中
//存储在set中的数据是按照系统的的规则排列的 不是我们存入的顺序
sadd users swk zbj ss ts blm
smembers key :获取key集合中多有的数据
smembers users
sismember key value:判断value是否在可以集合中存在
//判断ss是否在users中
sismember users ss
scard key;获取可以集合中元素的个数
scard users
sinter key [key] 获取多个集合交集
//查看users和enemy中所有相同的项
sinter users enemy
sdiff key [key]:获取多个集合的差集
//从users的项去掉与enemy中相同的项所剩下的项
sdiff users enemy
sunion key [key]:获取多个集合的并集
//把enemy中与users不同的项添加到users中
sunion users enemy
srem key value [value]:删除key中的value
//删除users中的ts
srem users ts
zset集合:有序存储多个数据
zadd key score value [score value]:添加多个带权重的数据到key集合中
zadd z1 10 yy
zrange key start stop:获取指定范围中所有的元素
zrange z1 0 -1
zcard key:返回元素的个数
zcard z1
zcount key min max:返回score值在min和max之间的数据
zcount z1 0 5
zscore key member:返回集合中member元素的score值
zscore z1 yy
和Python的交互
在cmd窗口中输入一下命令 在python环境中安装redis模块儿
python -m pip install redis
代码中导入模块儿
import redis
import redis
# 为了节省资源,减少多次连接损耗,连接池的作用相当于总揽多个客户端与服务端的连接,当新客户端需要连接时,只需要到连接池获取一个连接即可,实际上只是一个连接共享给多个客户端。
pool = redis.ConnectionPool(host='localhost',port=6379,decode_responses=True)
r = redis.Redis(connection_pool=pool)
r2 = redis.Redis(connection_pool=pool)
r.set("apple", 'a')
r2.set("grape", 'b')
print(r.get('apple'))
print(r2.get('grape'))
# 两者的id是一样的 所以是同一个客户端在连接
print(r.client_list())
print(r2.client_list())