redis数据库

1.1redis相关操作

基于key、value的内存性nosql数据库。读写效率极高,一般用来临时缓存数据,支持数据的持久化

redis默认端口是6379

redis默认有16个数据库,0-15

select x 可以切换数据库,默认进入的是零号库,x只能为0-15

(1)启动服务端

切换到redis目录,在终端中输入redis-server即可启动redis服务端

(2)启动客户端

切换到用户工作目录,在终端中输入redis-cli即可启动redis客户端

1.2数据操作

1.2.1string

(1)string是redis最基本的类型;最大能存储512MB数据;string类型是二进制安全的,即可以为任何数据,比如数字、图片、序列化对象等

(2)命令

  • 设置键值

①设置键值:set key value

②设置键值及过期时间,以秒为单位:setex key seconds value

③设置多个键值:mset key1 value1 key2 value2...

  • 获取

①根据键获取值,如果不存在此键则返回nil:get key

②根据多个键获取多个值:mget key1 key2...

  • 运算

要求:值是数字

①将key对应的value加1:incr key

②将key对应的value加整数:incrby key increment

③将key对应的value减1:decr key

④将key对应的value减整数:decrby key decrement

  • 追加值:append key value
  • 获取值长度:strlen key
  • 键的命令

①查找键,参数支持正则:keys pattern

②判断键是否存在,如果存在返回1,不存在返回0:exists key1 key2...

③查看键对应的value的类型:type key

④删除键及对应的值:del key1 key2...

⑤设置过期时间,以秒为单位,如果在创建时没有设置过期时间,则一直存在,知道使用del移除:expire key seconds

⑥查看有效时间,以秒为单位:ttl key

1.2.2hash

(1)hash用于存储对象,对象的格式为键值对

(2)命令

  • 设置(filed代表属性)

①设置单个属性:hset key field value

②设置多个属性:hmset key field1 value1 field2 value2...

  • 获取

①获取一个属性的值:hget key field

②获取多个属性的值:hmget key field1 field2...

③获取所有属性的值:hgetall key

④获取所有的属性:hkeys key

⑤返回包含属性的个数:hlen key

⑥获取所有值:hvals key

  • 判断属性是否存在:hexists key field
  • 删除属性及值:hdel key field1 field2...
  • 返回值的字符串长度:hstrlen key field

1.2.3list

(1)列表的元素类型为string;按照插入顺序排序;在列表的头部或者尾部添加元素

(2)命令

  • 设置

①在头部插入数据:lpush key vlaue1 value2...

②在尾部插入数据:rpush key value1 value2...

③在指定元素的前/后插入新元素:linsert key before|after pivot value

注意:pivot;如:linsert py4 after "123" "hello"表示在123的后面插入hello

④设置指定索引的元素值:lset key index value

注意:索引是从0开始的,索引可以是负数,负数表示从list尾部开始计数

  • 获取

①移除并且返回 key 对应的 list 的第一个元素:lpop key

②移除并返回存于 key 的 list 的最后一个元素:rpop key

③返回存储在 key 的列表里指定范围内的元素:lrange key start stop

注意:start 和 end 偏移量都是基于0的下标,偏移量也可以是负数,表示偏移量是从list尾部开始计数

  • 裁剪列表,改为原集合的一个子集:ltrim key start stop
  • 返回存储在 key 里的list的长度:llen key
  • 返回列表里索引对应的元素:lindex key index

1.2.4set

(1)无序集合;元素为string类型;元素具有唯一性,不重复

(2)命令

  • 设置

添加元素:sadd key member1 member2...

  • 获取

①返回key集合所有的元素:smembers key

②返回集合元素个数:scard key

  • 集合的操作

①求多个集合的交集:sinter key1 key2...

②求某集合与其它集合的差集:sdiff key1 key2...

③求多个集合的合集:sunion key1 key1...

④判断元素是否在集合中:sismember key member

1.2.5zset

(1)sorted set,有序集合;元素为string类型;元素具有唯一性,不重复;每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序;元素的score可以相同

(2)命令

  • 设置

添加:zadd key score1 member1 socre2 member2...

  • 获取

①返回指定范围内的元素:zrange key start stop

②返回元素个数:zcard key

③返回有序集key中,score值在min和max之间的成员:zcount key min max

④返回有序集key中,成员member的score值:zcore key member

1.3与python交互

1.3.1导入模块和连接

(1)导入模块

import redis

(2)连接

r=redis.StrictRedis(host='localhost',port=6379)

1.3.2操作

(1)写

pipe = r.pipeline()

pipe.set('name', 'world') pipe.get('name') pipe.execute()

(2)读

temp = r.get("py10")

print(temp)

(3)封装

将string类型的读写进行封装

import redis
class RedisHelper():
    def __init__(self,host='localhost',port=6379):
        self.__redis = redis.StrictRedis(host, port)
    def get(self,key):
        if self.__redis.exists(key):
            return self.__redis.get(key)
        else:
            return ""
    def set(self,key,value):
        self.__redis.set(key,value)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值