不看后悔之redis篇

前言

在实际的开发过程中,redis的使用场景非常多。它是一款非常优秀的NoSQL。查询效率是mysql的数百倍。
redis官网
redis命令参考

一.redis介绍

  1. 什么是redis?
    reids是一款开源的,内存中存储的数据结构存储系统。同时也支持数据持久化存储
  2. redis的应用场景
  • 登录会话存储,session
  • 作为消息队列,比如celery,RabbitMQ就是使用Redis作为中间间
  • 网站首页板块的内容
  • 把前面的10页中100篇的文章缓存到redis中。
  • 微博的好友关系
  • 发布和订阅的功能
  1. redis和memcached的区别
    redis和memcached的区别
    想要了解memcached,可以看我之前写的博客,点这里

二.redis安装配置

这里介绍Linux下的CentOs 7.x版本的安装

  1. 下载redis源码包
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar xzf redis-5.0.5.tar.gz
cd redis-5.0.5
make
  1. 修改配置文件(redis.conf)
# bind 127.0.0.1  #找到并注释掉,即可以实现远程访问本机redis
requirepass 123456 # 在requirepass foobared 下面增加这一行,设置redis的密码,密码可以随意指定
  1. 启动redis
src/redis-server /opt/redis-5.0.5/redis.conf & #可以加&放到后台中运行

redis服务启动
4. 连接redis

src/redis-cli		#本地连接
redis-cli -h IP地址 -p 端口号 -a 密码

三.redis的常用命令

1.字符串的操作,增加,删除,获取,过期时间

>auth 123456  # 这里设置了redis的秘密要先认证
>set username jack  # set 存储字段
>set username jack EX 120  # set存储字段并设置120s过期时间
>expire username 120  # 设置120s过期时间
>get username  # 获取username对应的value值
>del username  # 删除username对应的值
>mset key1 value1 key2 value2 key3 value3 # mset指一次设置多个值 
  1. 列表操作
>lpush company1 ali huawei  # 在列表左侧依次插入字段
>lrange company1 0 -1  # 获取company1列表的值,从0,到最后
>rpush company2 Tencent ali huawei #在列表的右侧依次插入字段
>lrange company2 0 -1 # 获取列表的值
>linsert company2 before ali bytes # 在现有元素的前面插入一个新的元素
>linsert company2 after ali xiaomi # 在现有元素的后面插入一个新的元素
>lset company2 2 apple # 通过列表的索引下表来修改指定的值
>lrem key count value  #删除指定元素
count > 0 从头往尾移除
count < 0 从尾往头移除
count = 0 移除所有
  1. 集合操作
>sadd username jack rose peny # 创建集合
>smembers username # 获取集合中的所有元素
>scard username # 查看元素有几个元素
>srem username peny #删除集合中指定的元素
>sadd username1 jack peny 
>sinter username username1  #两个集合中交集
>sunion username username1  #两个集合的并集
>sdiff username username1  #两个集合的差集
  1. hash操作
  • 什么是哈希?
    由一个以上包着的字典就是哈希值
{
		"person":{
			"age":18,
			"height":180
		}
	}
>hset person username jack # 添加hash值
>hget person username # 获取hash
>hgetall person #获取所有的hash对象
>hkeys person # 获取hash的所有key
>hvals person # 获取hash中所有的value值
>hmset person username jack age 18 weight 130 height 180 #设置多个字段
>hmget person username age weight height #一次获取多个字段
  1. redis的事务

支持原子性,隔离事务。即开启事务后要保证操作的完成一致性,要么成功,要么失败

  • multi :进入事务
  • discard:退出事务
  • exec:执行操作

6.redis的数据持久化

	RDB									AOF

save 900 1							appendonly

每隔多长时间执行一次全量			实时备份更新数据命令
备份
备份的是value						
备份的文件是dump.rdb				备份到appendonly.aof

四.python操作redis

1.安装redis

pip install redis
pip install redis -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
# -*-coding:utf-8-*-
from redis import Redis

# 远程连接redis
# 必须开启远程连接,即注释掉bind 127.0.0.1
cache = Redis(host='127.0.0.1', port=6379, password='123456', decode_responses=True)

# 1.操作字符串
cache.set('username', 'jack', ex=100)
cache.delete('username')

# 2.列表操作
a = ['tencent', 'ali', 'huawei']
cache.lpush('company', 'tencet', 'ali', 'huawei')
print(cache.lrange('company', 0, -1))
cache.rpush('company', 'tencet', 'ali', 'huawei')
cache.linsert('company', 'BEFORE', refvalue='tencet', value='ali')
cache.lrem('company', 0, 'ali')
print(cache.lrange('company', 0, -1))

# 3.集合操作
cache.sadd('username', 'jack')
cache.smembers('username')
print(cache.scard('username'))
cache.srem('username', 'jack')

# 4.hash操作
cache.hset('person', 'username', 'jack')
print(cache.hget('person', 'username'))
print(cache.hgetall('person'))
print(cache.hkeys('person'), cache.hvals('person'))
person = {
    "username": "jack",
    "age": 18,
    "height": 180,
    "weight": 120
}

cache.hmset('person', person)
print(cache.hmget('person', 'username', 'age'))

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值