Redis
No1:
MongoDB是文档存储,一般以json的格式存储。
Redis是key-value存储。
No2:
Redis键的类型永远是字符串,值可以是字符串、哈希hash、列表list、集合set、有序集合zset,数据操作命令可以查redis中文网站
No3:
redis官网是不支持win系统的,win系统版本要去github上下载https://github.com/MSOpenTech/redis/releases
下载后解压,配置环境变量,配置文件在redis.windows.conf
redis-server 运行redis服务器 redis-server --service-start 启动redis服务,一般启动一次就可以了 redis-cli 进入命令行模式
No4:
【string】
- 最大能存储512MB数据
- string类型是二进制安全的,即可以为任何数据,比如数字、图片、序列化对象等
set key value --设置键值 SETEX key seconds value --设置键值及过期时间,以秒为单位 MSET key value [key value ...] --设置多个键值 GET key --根据键获取值,如果不存在此键则返回nil MGET key [key ...] --根据多个键获取多个值 APPEND key value --追加值 STRLEN key --获取值长度
No5:
【键命令】
KEYS pattern --查找键,参数支持正则 EXISTS key [key ...] --判断键是否存在,如果存在返回1,不存在返回0 TYPE key --查看键对应的value的类型 DEL key [key ...] --删除键及对应的值 EXPIRE key seconds --设置过期时间,以秒为单位 创建时没有设置过期时间则一直存在,直到使用使用DEL移除 TTL key --查看有效时间,以秒为单位
No6:
【hash】
- hash用于存储对象,对象的格式为键值对
HSET key field value --设置单个属性 HMSET key field value [field value ...] --设置多个属性 HGET key field --获取一个属性的值 HMGET key field [field ...] --获取多个属性的值 HGETALL key --获取所有属性和值 HKEYS key --获取所有的属性 HLEN key --返回包含属性的个数 HVALS key --获取所有值 HEXISTS key field --判断属性是否存在 HDEL key field [field ...] --删除属性及值 HSTRLEN key field --返回值的字符串长度
No7:
【list】
- 列表的元素类型为string
- 按照插入顺序排序
- 在列表的头部或者尾部添加元素
LPUSH key value [value ...] --在头部插入数据 RPUSH key value [value ...] --在尾部插入数据 LINSERT key BEFORE|AFTER pivot value --在一个元素的前|后插入新元素 LSET key index value --设置指定索引的元素值 索引是基于0的下标 索引可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素 LPOP key --移除并且返回 key 对应的 list 的第一个元素 RPOP key --移除并返回存于 key 的 list 的最后一个元素 LRANGE key start stop --返回存储在 key 的列表里指定范围内的元素 start 和 end 偏移量都是基于0的下标 偏移量也可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素 LTRIM key start stop --裁剪列表,改为原集合的一个子集 start 和 end 偏移量都是基于0的下标 偏移量也可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素 LLEN key --返回存储在 key 里的list的长度 LINDEX key index --返回列表里索引对应的元素
No8:
【set】
- 无序集合
- 元素为string类型
- 元素具有唯一性,不重复
SADD key member [member ...] --添加元素 SMEMBERS key --返回key集合所有的元素 SCARD key --返回集合元素个数 SINTER key [key ...] --求多个集合的交集 SDIFF key [key ...] --求某集合与其它集合的差集 SUNION key [key ...] --求多个集合的合集 SISMEMBER key member --判断元素是否在集合中
No9:
【zset】
- sorted set,有序集合
- 元素为string类型
- 元素具有唯一性,不重复
- 每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序
- 元素的score可以相同
ZADD key score member [score member ...] --添加 ZRANGE key start stop --返回指定范围内的元素 ZCARD key --返回元素个数 ZCOUNT key min max --返回有序集key中,score值在min和max之间的成员 ZSCORE key member --返回有序集key中,成员member的score值
No10:
【发布订阅】
- 推送消息的格式包含三部分
- part1:消息类型,包含三种类型
- subscribe,表示订阅成功
- unsubscribe,表示取消订阅成功
- message,表示其它终端发布消息
- 如果第一部分的值为subscribe,则第二部分是频道,第三部分是现在订阅的频道的数量
- 如果第一部分的值为unsubscribe,则第二部分是频道,第三部分是现在订阅的频道的数量,如果为0则表示当前没有订阅任何频道,当在Pub/Sub以外状态,客户端可以发出任何redis命令
- 如果第一部分的值为message,则第二部分是来源频道的名称,第三部分是消息的内容
SUBSCRIBE 频道名称 [频道名称 ...] --订阅 UNSUBSCRIBE 频道名称 [频道名称 ...] --取消订阅,如果不写参数,表示取消所有订阅 PUBLISH 频道 消息 --发布
No11:
【主从配置】
一个master可以拥有多个slave,一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构 比如,将ip为192.168.1.10的机器作为主服务器,将ip为192.168.1.11的机器作为从服务器 --设置主服务器的配置 bind 192.168.1.10 --设置从服务器的配置 注意:在slaveof后面写主机ip,再写端口,而且端口必须写 bind 192.168.1.11 slaveof 192.168.1.10 6379
No12:
【与python交互】
import redis try: r=redis.StrictRedis(host='localhost',port=6379) except Exception,e: print e.message -----1 r.set('name','hello') r.get('name') ----2 pipe = r.pipeline() pipe.set('name', 'world') pipe.get('name') pipe.execute()
----封装 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)
No13:
【用户登录模块】
#encoding=utf-8 from t2 import RedisHelper from t3 import MysqlHelper import hashlib name=raw_input("请输入用户名:") pwd=raw_input("请输入密码:") sha1=hashlib.sha1() sha1.update(pwd) pwd1=sha1.hexdigest() try: redis=RedisHelper() if redis.get('uname')==name: print 'ok' else: mysql=MysqlHelper('localhost',3306,'test1','root','mysql') upwd=mysql.get_one('select upwd from userinfos where uname=%s',[name]) if upwd==None: print '用户名错误' elif upwd[0]==pwd1: redis.set('uname', name) print '登录成功' else: print "密码错误" except Exception,e: print e.message
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2017-11-20 顶部搜索框背景色渐变