redis安装,语法和Python连接

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

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

语法:

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

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

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()

微信公众号

原文地址:http://blog.51cto.com/tdcqvip/2072845

时间: 2024-10-15 09:49:26

redis安装,语法和Python连接的相关文章

RabbitMQ的安装和使用Python连接RabbitMQ

绪论 这里的环境使用的是Mac OS X系统,所有的配置和使用都是基于Mac OS X 和Python 2.7 以及对应的pika库的. RabbitMQ的安装和配置 安装部分 #brew install rabbitmq 配置和启动 #sudo brew services start rabbitmq #sudo rabbitmqctl add_user admin admin "创建用户(username password)" #sudo rabbitmqctl set_user_

缓存数据库-redis安装和配置

一:redis安装 python操作redis分为两部分,一为安装redis程序 二是安装支持python操作redis的模块 1)安装redis redis 官方网站:http://www.redis.cn/ Redis 没有官方的Windows版本,但是微软开源技术团队(Microsoft Open Tech group)开发和维护着这个 Win64 的版本 https://github.com/MicrosoftArchive/redis/releases linux安装 wget htt

自学总结redis第一部分(简介、虚拟机配置、安装、配置、连接方式、密码设置)

Redis学习部分 一.NoSql简介 NoSql泛指非关系型数据库. 更多简介请见 "http://baike.baidu.com/link?url=sYV3qpYWs3RDlz1RZbVP18luQwubYrboLUt2qRDhSJrhctvLL1tYBtDFf736ypSocpnmZE5eLvyYzd34k5T2xa" 1.1NoSql数据库的四大分类 键值(key-value)存储数据库:这一类数据库主要会使用一个哈希表,这个表中有一个特定的键和一个指针执行特定的数据.Key/

【小工具】python 连接redis查询

作用说明:通过python连接redis进行查询,判断结果并进行后续操作.需先安装redis-2.10.5.tar.gz. 代码如下: #!/usr/local/bin/python import redis r = redis.StrictRedis(host='192.168.1.100', port=8888, db=0) t = int(r.get('test')) if t > 100:          print t  ####这边可以配置查询到匹配的值后要执行的操作,例如发送邮件

python连接redis

1.安装redis忽略 2.安装python连接redis的模块 yum install python-redis -y #有些人追新,最终导致python连接不到redis,使用yum安装很好的解决了该问题 3.进入python,导入redis 模块 >>> import redis 4.创建redis连接信息 >>> r = redis.Redis(host='172.16.244.206',port=6379,db=0) 5.对redis进行操作: >>

Redis安装配置及在Python上的应用

最近在使用Kazoo(开源电话系统) API时,一次请求的处理需要调用几次API,只为了得到一个name和id的对应关系,耗时非常大,开始想使用一种简单的实现,直接将对应关系保存到静态类的静态变量中,但经过测试发现,这种方法还是会造成对应关系经常丢失的情况,后来简单了解了下Redis,发现比较适用于这种情况,具体操作过程如下所示: Redis安装与简单配置 开发环境为Ubuntu 12.04,在Ubuntu下Redis安装很简单,直接通过apt-get即可实现,具体如下所示: #安装Redis服

Docker安装MySQL Tomcat Python Redis MongoDB Apache

Docker 安装 MySQL 方法一.docker pull mysql 查找Docker Hub上的mysql镜像 [email protected]:/mysql$ docker search mysql NAME                     DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED mysql                    MySQL is a wide

群福利:Redis云服务器免费领取(附Redis安装和连接远程连接Redis案例)

Redis安装:在线体验:https://try.redis.io Ubuntu:sudo apt-get install redis CentOS:yum install redis (root权限) Win系列:https://github.com/MicrosoftArchive/redis/releases win系列工具打包(7day)https://pan.baidu.com/s/14zkWUuwWa6e4akLU1toLQA 有点限制~1个数据库,30个并发,学习和个人使用是够了

python连接redis sentinel集群

安装 python redis 客户端 pip install redis #!/usr/bin/env python # -*- coding:utf-8 -*- #!/usr/bin/env python import redis from redis.sentinel import Sentinel # 连接哨兵服务器(主机名也可以用域名) sentinel = Sentinel([('172.31.0.2', 5001), ('172.31.0.3', 5001), ('172.31.0