返回顶部
首页 > 资讯 > 后端开发 > Python >redis安装,语法和Python连接
  • 556
分享到

redis安装,语法和Python连接

2024-04-02 19:04:59 556人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

程序下载Http://down.51cto.com/data/2440789:点击客户端进行连接测试,出现下图说明测试成功语法:Redis的字符串操作 set(key,value,ex=None,px=


程序下载Http://down.51cto.com/data/2440789:


点击客户端进行连接测试,出现下图说明测试成功

redis安装,语法和Python连接

redis安装,语法和Python连接


语法:

Redis字符串操作

	set(key,value,ex=None,px=None,nx=False,xx=False)
		在redis中设置值,默认,不存在则创建,存在则修改
		参数:
			ex:过期时间(秒)
			px: 过期时间(毫秒)
			nx:如果设置为True,则只有key不存在时。当前set才会执行
			xx:如果设置为True,则只有key存在时,当前set才会执行

	setnx(key,value)
		设置值,只有key不存在时,执行设置操作

	setex(key,value,time)
		设置值
		参数:
			time:过期时间单位是秒
			
	psetex(key,value,time)		
		设置值
		参数:
			time:过期时间单位是毫秒
			
	mset(*args,**kwargs)
		批量设置值
		如:
			mset k1 v1 k2 v2
			或者mset(k1='v1',k2='v2')

	getset(key,value)
		设置新值并返回原来的值

	getrange(key,start,end)
		获取子序列(根据字节获取,非字符)
		参数:
			key: redis的key
			start:起始位置(字节)
			end:  结束位置(字节)
		如:“张三”,0-3表示“张”
		
	setrange(key,offset,value)
		修改字符串内容。从指定字符串索引开始向后替换(新值太长时,则向后添加)
		参数:
			offset: 字符串的索引,字节(一个汉字三个字节)
			value:  要设置的值

	setbit(key,offset,value)
		对key对应的二进制表示的位进行操作
		参数:
			key:  redis的key
			offset:位的索引(将值变为二进制后再进行索引)
			value:   值只能是0或1
		例:
			如果在redis中有一个对应:n1 = "foo"
				那么字符串“foo”的二进制表示为:01100110 01101111 01101111
				如果执行setbit('n1',7,1)则就会将第七位设置为1
				那么最终二进制则变成 01100111 01101111 01101111 即“Goo”
				代码实现
					127.0.0.1:6379> set n1 foo
					OK
					127.0.0.1:6379> setbit n1 7 1
					(integer) 0
					127.0.0.1:6379> get n1
					"goo"
					127.0.0.1:6379>
		用处:
			如QQ统计在线人数,并且看谁在线:
			
				让1代表在线。0代表不在线
				offset代表用户对应的ID
				如果用户上线,则将该ID设置为1
				用bitcount统计有多少个1,即有多少用户在线
				用getbit查看用户是否在线
				代码实现:
					127.0.0.1:6379> setbit QQ 55 1
					(integer) 0
					127.0.0.1:6379> setbit QQ 1000 1
					(integer) 0
					127.0.0.1:6379> bitcount QQ
					(integer) 2
					127.0.0.1:6379> getbit QQ 55
					(integer) 1
					127.0.0.1:6379>  getbit QQ 66
					(integer) 0
					127.0.0.1:6379>

	append(key,value)
			在redis,key对应的值后追加
			参数:
				key:	redis的key
				value: 要追加的字符串
			例子:
				127.0.0.1:6379> get zhang
				"san"
				127.0.0.1:6379> append zhang san
				(integer) 6
				127.0.0.1:6379> get zhang
				"sansan"
				127.0.0.1:6379>
				
	del key
		删除key
hash
	如果需要存一个班级的姓名等信息
	
		127.0.0.1:6379> hset info key duwentao
		(integer) 1
		127.0.0.1:6379> hset info age 20
		(integer) 1
		127.0.0.1:6379> hset info id 1
		(integer) 1
		127.0.0.1:6379> hgetall info
		1) "key"
		2) "duwentao"
		3) "age"
		4) "20"
		5) "id"
		6) "1"
		127.0.0.1:6379> hget info age
		"20"
		127.0.0.1:6379> hkeys info  #查看有多少key
		1) "key"
		2) "age"
		3) "id"
		127.0.0.1:6379> hvals info #查看有多少value
		1) "duwentao"
		2) "20"
		3) "1"
		
	
	hmset key field value [field value ...]
		用法:
			127.0.0.1:6379> hmset li k1 v1 k2 v2 k3 v3
			OK
			127.0.0.1:6379> hgetall li
			1) "k1"
			2) "v1"
			3) "k2"
			4) "v2"
			5) "k3"
			6) "v3"
			
	hget key field
		在key对应的hash中获取根据key获取value
		
	hmget key field [field ...]
		用法:
		127.0.0.1:6379> hmget li k1 k2
		1) "v1"
		2) "v2"
	
	hlen(key)
		获取有几个key
	
	hkeys(key)
		获取key对应的hash中所有key的值
	
	hvals(key)
		获取key对应的hash中所有的value值
	
	hexists key field
		检查key对应的hash是否存在当前传入的key
			
	hincrby key field increment
		自增加
			127.0.0.1:6379> hincrby info age 1
			(integer) 21
			127.0.0.1:6379>  hincrby info age 1
			(integer) 22
				
	hscan key cursor [MATCH pattern] [COUNT count]
			起到一个过滤的作用
			如  hscan info 0 match *a*
			
			
列表:
	
	lpush(从左边放)和rpush(从右边放)
	
		127.0.0.1:6379> lpush keys1 zhangsan lisi wanger
		(integer) 3
		127.0.0.1:6379>  LRANGE keys1 0 -1
		1) "wanger"
		2) "lisi"
		3) "zhangsan"
		127.0.0.1:6379> RPUSH keys2 zhangsan lizi wanger
		(integer) 3
		127.0.0.1:6379>  LRANGE keys2 0 -1
		1) "zhangsan"
		2) "lizi"
		3) "wanger"
		127.0.0.1:6379>
	
	lpushx key value
		在key对应的list中添加元素,只对key已经存在时,值添加到列表的最左边
	
	rpushx key value
		在key对应的list中添加元素,只对key已经存在时,值添加到列表的最右边
		
	llen key
		key对应的list元素个数
	
	LINSERT key BEFORE|AFTER pivot value
		在key对应的列表的某一个值前或后插入一个新值
		参数:
			key:            redis的key
			BEFORE|AFTER:   在什么或者后
			privot:         标杆值,即在他前后插入数据
			value:          要插入的数据
		
	lset key index value
		对key对应的list中的某一个索引位置进行重新赋值
		参数:
			key:  redis的key值
			index:list的索引位置
			value:要设置的值
			
	lrem key count value
		在key对应的list中删除指定的值
		
		参数:
			key:redis的key
			value:要删除的值
			count:
				count=0: 删除列表中所有的指定的值
				count=2: 从前向后,删除两个
				count=-2:从后向前,删除两个

	lpop key
		在key对应的列表的左侧获取第一个元素并在列表中删除,返回值则是第一个元素。
		
	lindex key index
		在key中对应的列表中根据索引获取列表元素
	
	LRANGE key start stop
		在key对应的列表分片获取数据
		参数:
			key:  redis的key
			start:索引的起始位置
			end:  索引的结束位置
	
	LTRIM key start stop
		在key对应的列表中移除没有在start stop索引之间的值
		参数:
			key:redis的key
			start:索引的起始位置
			stop:索引的结束位置
		
	RPOPLPUSH source destination
		从一个表中取出最右边的元素,同时将其添加至另一个列表的最左边
		参数:
			source:     要取出数据的列表的key
			destination:要添加数据的列表的key
	
	BRPOPLPUSH source destination timeout
		从一个列表的右侧移除一个元素并将其添加到另一个列表的左侧
		参数:
			source:取出并移除元素的列表对应的key
			destination:要插入元素的列表对应的key
			timeout:当source对应的列表中没有数据时,阻塞等待其数据的超时时间(秒),0表示永远堵塞
		
集合:
	sadd key member [member ...]
		key对应的集合中添加元素(无重复,无序)
		如:
			127.0.0.1:6379> sadd names3 zhangsan zhangsan lisi lisi 3 3
			(integer) 3
			127.0.0.1:6379> SMEMBERS names3 #获取所有值
			1) "3"
			2) "lisi"
			3) "zhangsan"
			
	scard key
		获取key对应的集合中的元素个数
	
	sdiff key [key ...]
		在第一个key对应的集合中且不在其他key对应的集合中的元素
		
	sdiffstore destination key [key ...]	
		在第一个key对应的集合中且不在其他key对应的集合中的元素,把他添加到destination里
		
	
	SINTER key1 [key2] 
		返回给定所有集合的交集
		
	SINTERSTORE destination key1 [key2] 
		返回给定所有集合的交集并存储在 destination 中
		
	SISMEMBER key member 
		判断 member 元素是否是集合 key 的成员
		
	SMEMBERS key 
		返回集合中的所有成员
		
	SMOVE source destination member 
		将 member 元素从 source 集合移动到 destination 集合
		
	SPOP key 
		移除并返回集合中的一个随机元素
		
	SRANDMEMBER key [count] 
		返回集合中一个或多个随机数
		
	SREM key member1 [member2] 
		移除集合中一个或多个成员
		
	SUNION key1 [key2] 
		返回所有给定集合的并集
		
	SUNIONSTORE destination key1 [key2] 
		所有给定集合的并集存储在 destination 集合中
		
	SSCAN key cursor [MATCH pattern] [COUNT count] 
		迭代集合中的元素	
		
		
有序集合:
	ZADD key score1 member1 [score2 member2] 
		向有序集合添加一个或多个成员,或者更新已存在成员的分数
	
	ZCARD key 
		获取有序集合的成员数
	
	ZCOUNT key min max
		计算在有序集合中指定区间分数的成员数
	
	ZINCRBY key increment member 
		有序集合中对指定成员的分数加上增量 increment
	
	ZINTERSTORE destination numkeys key [key ...] 
		计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中
	
	ZLEXCOUNT key min max 
		在有序集合中计算指定字典区间内成员数量
	
	ZRANGE key start stop [WITHSCORES] 
		通过索引区间返回有序集合成指定区间内的成员
	
	ZRANGEBYLEX key min max [LIMIT offset count] 
		通过字典区间返回有序集合的成员
	
	ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT] 
		通过分数返回有序集合指定区间内的成员
	
	ZRANK key member 
		返回有序集合中指定成员的索引
	
	ZREM key member [member ...] 
		移除有序集合中的一个或多个成员
	
	ZREMRANGEBYLEX key min max 
		移除有序集合中给定的字典区间的所有成员
	
	ZREMRANGEBYRANK key start stop 
		移除有序集合中给定的排名区间的所有成员
	
	ZREMRANGEBYSCORE key min max 
		移除有序集合中给定的分数区间的所有成员
	
	ZREVRANGE key start stop [WITHSCORES] 
		返回有序集中指定区间内的成员,通过索引,分数从高到底
	
	ZREVRANGEBYSCORE key max min [WITHSCORES] 
		返回有序集中指定分数区间内的成员,分数从高到低排序
	
	ZREVRANK key member 
		返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
	
	ZSCORE key member 
		返回有序集中,成员的分数值
	
	ZUNIONSTORE destination numkeys key [key ...] 
		计算给定的一个或多个有序集的并集,并存储在新的 key 中
	
	ZSCAN key cursor [MATCH pattern] [COUNT count] 
		迭代有序集合中的元素(包括元素成员和元素分值)		

安装python 模块

    pip3 install redis


Python 线程池连接redis

redis安装,语法和Python连接

普通连接redis


redis安装,语法和Python连接


管道:一次可以执行多个命令


import redis

pool = redis.ConnectionPool(host='127.0.0.1',port=6379) #连接池
#r = redis.Redis(host='127.0.0.1',port=6379)
r = redis.Redis(connection_pool=pool)
pipe = r.pipeline(transaction=True)

r.set('foo','bar')
r.set('zhangsan','heheheh')

pipe.execute()


实现订阅和发布

服务端(发布端):


import redis
pool = redis.ConnectionPool(host="127.0.0.1",port='6379')
rc = redis.Redis(connection_pool=pool)

while True:
    mes = str(input("请输入要发布的内容:"))
    rc.publish('fm100.5', mes)

客户端(订阅端):

import redis
pool = redis.ConnectionPool(host="127.0.0.1",port='6379')
rc = redis.Redis(connection_pool=pool)

ps = rc.pubsub() #打开
ps.subscribe(['fm100.5']) #调频
for item in ps.listen(): #监听
    if item['type'] == 'message':
        data = item['data']
        print(data.decode('utf-8'))

微信公众号

redis安装,语法和Python连接


--结束END--

本文标题: redis安装,语法和Python连接

本文链接: https://lsjlt.com/news/50813.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • redis安装,语法和Python连接
    程序下载http://down.51cto.com/data/2440789:点击客户端进行连接测试,出现下图说明测试成功语法:redis的字符串操作 set(key,value,ex=None,px=...
    99+
    2024-04-02
  • [Redis]python连接redis
    只是看看能不能成功使用python操作redis,redis具体的数据结构和使用会在以后学习。安装连接redis的包pip install redis本地已经在6379端口启动了redis服务。In [1]: importredis In ...
    99+
    2023-01-31
    Redis python redis
  • Docker安装Redis并使用Another Redis Desktop Manager连接的方法
    目录Redis简单介绍查看可用的 Redis 版本拉取最新版的Redis镜像创建并运行一个Redis容器和设置链接密码验证Redis是否安装成功参考文章:Redis简单介绍 Redis全称是Remote DIctiona...
    99+
    2024-04-02
  • Docker安装Redis并使用Another Redis Desktop Manager连接的方法
    目录Redis简单介绍查看可用的 Redis 版本拉取最新版的Redis镜像创建并运行一个Redis容器和设置链接密码验证Redis是否安装成功参考文章:Redis简单介绍 Redi...
    99+
    2024-04-02
  • python连接redis
    一、安装服务下载、编译安装wget http://download.redis.io/releases/redis-3.0.1.tar.gz tar -zxvf redis-3.0.1.tar.gz cd redis-3.0.1 make二...
    99+
    2023-01-31
    python redis
  • 在CentOS上安装、启动、连接和关闭Redis教程
    一、Redis在Linux上的安装: 1、Redis下载并解压 下载:wget http://download.redis.io/releases/redis-3.2.8.tar.gz  cd /data/exception500  tar...
    99+
    2021-10-04
    在CentOS上安装 启动 连接和关闭Redis教程
  • mysql5.7.18如何安装和连接
    小编给大家分享一下mysql5.7.18如何安装和连接,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一. MySQL Serve...
    99+
    2024-04-02
  • python连接oracle的模块cx_Oracle安装和配置
    下载相应版本的cx_Oracle安装cx_Oracle-5.1.2-11g-py24-1.x86_64.rpm,其他版本类似,rpm -ivh  cx_Oracle-5.1.2-11g-py24-...
    99+
    2024-04-02
  • Docker如何安装Redis配置远程连接
    这篇“Docker如何安装Redis配置远程连接”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Docker如何安装Redis...
    99+
    2023-07-02
  • 安装redis及python redis
    第一部分:安装redis mkdir /usr/local/redis cd /usr/local/srcwget http://download.redis.io/releases/redis-2.8.12.tar.gztar xzf r...
    99+
    2023-01-31
    redis python
  • python redis 断开连接
    参考自https://github.com/andymccurdy/redis-py/issues/681 r.connection_pool.disconnect()   ...
    99+
    2023-01-31
    python redis
  • python中redis的安装和使用
    python下redis安装 用python操作redis数据库,先下载redis-py模块下载地址https://github.com/andymccurdy/redis-py shell# wget h...
    99+
    2022-06-04
    python redis
  • Docker安装Redis配置远程连接及踩坑
    目录1. 安装Redis2. 新建挂载配置文件夹3. 增加配置文件 redis.conf4. 创建redis容器并启动5. 启动成功,查看状态6. 容器内部连接进行测试7. 使用Re...
    99+
    2024-04-02
  • centos7.9安装libmysqlclient,用C语言连接mysql
    前言 我的mysql版本是8.0.31。在linux中使用第三方库时首先需要安装库,然后在编译时指定链接库名,要注意的是这个库是放在/usr/lib64/mysql下的,所以需要在编译时指定动态库的路...
    99+
    2023-09-02
    mysql c语言 数据库
  • python安装oracle扩展及数据库连接方法
    本文实例讲述了python安装oracle扩展及数据库连接方法。分享给大家供大家参考,具体如下: 下载: cx_Oracle下载地址:http://cx-oracle.sourceforge.net/ in...
    99+
    2022-06-04
    数据库连接 方法 python
  • plsql安装和连接配置的方法是什么
    这篇文章将为大家详细讲解有关plsql安装和连接配置的方法是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PL/SQL 安装和连接配置 安装 下载 Oracle 数据库软件:从 Oracle 官网下...
    99+
    2024-05-13
    PL/SQL 连接配置 SQL*Plus OracleSQLDeveloper PL/SQLDeveloper
  • python连接Oracle的插件cx_Oracle安装
    安装cx_Oracle须知: 首先安装配置时,必须把握一个点,就是版本一致!包括:系统版本,python版本,oracle客户端的版本,cx_Oracle的版本,然后安装配置就容易了! ...
    99+
    2024-04-02
  • python中如何连接redis
    python中连接redis的方法:1、打开终端;2、输入命令创建命令脚本;3、给脚本添加连接redis代码;4、输入命令执行脚本连接redis即可。具体操作步骤如下:打开终端命令行模式。输入以下命令创建命令脚本。cat yisu.py #...
    99+
    2024-04-02
  • 安装 sqldeveloper连接oracle
    安装 sqldeveloper连接oracle----(此安装方法一直在windoxs32bit中进行)已上传 http://down.51cto.com/data/2213695安装sqldev...
    99+
    2024-04-02
  • 怎么安装运行和连接Jupyter Notebook
    这篇文章主要介绍了怎么安装运行和连接Jupyter Notebook,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Jupyter Notebook是一个开源的交互式Web应用...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作