初识redis

1.为什么使用redis

因为mysql有两个重大的局限性:1.是存储在硬盘中,硬盘的存储速度比较慢2.mysql有性能限制,在多于100W条数据的时候性能很差,要分库分表。

使用redis就是为了解决这两个局限

2.nosql

redis特点:

1)查询速度快,数据是存储在内存当中的

2)不需要提前定义好字段

nosql的分类:

  1.memcache

    -数据存放内存,不能落地,不能持久化。

    -支持的数据类型太少,只支持字符串。

  2.MongDB

    -数据存放到内存,解决了数据的持久化。

    -支持多种数据类型

  3.redis

    -数据存放到内存,解决了数据的持久化

    -支持5大数据类型:字符串

              应用:在登录的时候,可以控制频控,统计页面点击数。

    链表,集合,有序结合,哈希结构

    用的多的公司:微博。

3.redis的五大数据类型

redis要先安装,下载,然后解压相应软件包后。先启动服务端

./bin/redis-server ./redis.conf

在客户端要进行连接服务器端

/path/to/redis/bin/redis-cli [-h localhost -p 6379 ]

字符串操作:

1)set 设定键值对,前面是key,后面是value,ex代表秒,px代表毫秒,是指定过期时间

set name egon ex 10(指定10秒后过期)

get name(获取value)

2)mset设定多个键值对

mset name lxx age 88

mget name age(获取多个value)

 

getset name alex返回旧值,设置新值

incr cnt 自加1

incrby cnt 2 设定自加值为2

decr cnt 自减1

decrby cnt 2 设定自减值为2

 

链表操作(有点像key对应了一个列表):

lpush names zhangsan lisi lxx egon  把数据插入names链表

lrange names  0 -1 链表取值

rpop names 从右开始删

lpop names 从左开始删

ltrip names 1 3 从哪开始切,到哪结束。切完以后,里面的元素个数发生改变,切成多少个,就是多少个。

lindex names 1 返回names列表里所对应的索引的值

llen names 返回的是names列表的长度

linsert names after lisi xuxian 

linsert names before lisi xuxian 

 

集合操作

sadd lpl corn cool gooing往集合添加元素

SMEMBERS lpl获得集合的值

srem lpl cool删除纸盒中的指定值

SRANDMEMBER lpl 随机拿一个成员的值

SISMEMBER lpl egon 判断是否在集合中

scrd lpl 返回集合的个数

SINTER xiena zhangjie  查看两个集合的交集

SINTERSTORE s2 xiena zhangjie 把xiena和zhangjie两个集合的交集的值存放在s2集合中

sunion xiena zhangjie 求两个集的并集,会自动去重

sdiff xiena zhangjie 查看两个集合的差集

 

有序集合

zadd stu 18 liliy 19 hmm 20 lilei 21 poly有序集合添加元素,这里18 19 20 21是评分

zrank stu lilei 查看元素的排名

zrange stu 0 -1 查看集合内的元素

zrange stu 0 -1 withscores 查看集合内的元素,评分也显示

zrevrange stu 0 -1 降序排列

zcard stu 返回有序集合元素个数

zcount stu 0 2返回评分区间内元素的数量

 

hash数据结构操作

hset user  name egon 这里设置的name是key的值,user可以近似的理解为表名

hget user name 查相应的值

hmset user age 73 gender male 设置多个key value值

hmget user name age gender 获取user表多个key所对应的value

hgetall user 获取user下的所有value

hlen user 获取user的key值个数

HEXISTS user name user下的name字段是否有value,有则返回1,没有则返回0

HINCRBY user age 20 查出age对应的value,并让他增长20

hkeys user 获取所有的key值

hvals user 获取所有的value值

4.redis的一些基础操作

del key1 key2 ...... keyn

作用:删除1个或者多个键

返回值:不存在的key忽略掉,返回真正删除的key的数量

rename oldkey newkey

作用:给key设置一个新的key名

注:如果说newkey的值已经存在,则newkey的原值被覆盖

renamex key newkey

作用:把key改名为newkey

返回:发生修改返回1,未发生修改返回0

move key db

这里需要解释一下,redis默认有16个数据库,分别从0-15。

select 2 选择跳到第3个数据库

move user 2 把user移到2数据库

select 2

flushdb 清空当前数据库

flushall 清空所有数据库

randomkey返回随机key

exists key判断key是否存在 返回1/0

type key 返回key存储的值的类型 

ttl key 查询key的生命周期

expire key 整型值,设置key的生命周期

pexpire key 毫秒数,设置生命周期

pttl key 以毫秒返回生命周期

persist key 把指定key设置为永久有效

 

 

注:对于不存在的key或已过期的key都返回-1

5.python操作redis

首先要下载redis库

pip3 install redis

import redis

r=redis.Redis(host='localhost',port=6379)
r.set('name','zhangsan')
mes=r.get('name')
print(mes)
View Code

 

转载于:https://www.cnblogs.com/xufengnian/p/10128036.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值