redis
配置
里面可以配置端口与bind的IP,如果需要远程连接的话,把bind那行注释掉即可。
数据类型
主要有以下几种类型:字符串、哈希、列表、集合、有序集合
主要操作
1.字符串主要操作
*set key value
*get key
*mset key1 value1 key2 value2
*mget key1 key2
*strlen key #获取key存储的value长度
*incr/decr key #将key对应的value +1/-1,要求value必须为整数。
*incrby/decrby key number#将key对应的value +number/-number,要求value必须为整数。
2.键的操作
*type key #查看key的类型
*del key #删除key
*ttl key #查看key的过期时间
*exists key #查看key是否存在
3.哈希主要操作
*Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
*个人理解就是一张hash表可以存储k-v对,每个hash表最大能存2*31-1个key-value。
*hset table-name key value
*hmset table-name key1 key2
*hget table-name key
*hmget table-name key1 key2 #获取多个key值
*hdel table-name key
*hgetall table-name #获取key中所有记录。
*hexists table-name key #是否存在该key
*hlen table-name #获取该表k-v数量
*hkeys table-name #获取该表的key值
*hvals table-name #获取该表的所有value值
3.列表主要操作
*Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
*这个列表中的值可以是重复的。
*lpush/rpush list-name value1 value2
*lpop list-name #弹出列表头元素
*rpop list-name #弹出列表尾部元素
*llen list-name #列出列表长度
*lindex list-name index #获取列表索引值对应的value
*lrem list-name count value #删除列表中的value值 count 为value的数量。
*lset list-name index value #设置下标为index的值为value
4.集合的主要操作
*Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
*复杂度:O(1)
*sadd set-name value1 value2 ... #添加一个或多个元素
*scard set-name #获取集合的数量
*sdiff set-name set-name1 #比较两个集合内容,返回不一致的
*sdiffstore destination set-name set-name1 #返回不一致的并存入destination
*smembers set-name #获取集合内所有元素
*sismember set-name value #集合内是否有value元素
*smove source destination value #将集合source value 移到 destination
*spop set-name #移除并返回集合的一个随机元素
*srem set-name value #删除集合中元素
5.有序集合
*每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序
*zadd jh-table score1 value1 [score2 value2...] #增加s-v 到jh-table中
*zcard jh-table #计算数量
*zscore jh-table value1 #获取value1的 score值
*zcount jh-table min max #获取score在min和max中的集合的个数
*zrange jh-table start stop #列出范围在start-stop内的元素
发布/订阅
*subsribe channel #订阅频道
*publish channel message #向指定频道发送信息
*unsubscribe channel
python连接redis
#coding=utf-8
'''
Created on 2018年6月11日
@author: BH Wong
'''
import redis
class redisHelper():
def __init__(self,host,port):
self.host = host
self.port = port
def connect(self):
r = redis.Redis(host = self.host,port = self.port,db = 0)
return r
def setRedis(self,conn,key,value):
conn.set(key,value)
def getRedis(self,conn,key):
return conn.get(key)
if __name__ == '__main__':
redisDemo = redisHelper('192.168.164.135',6379)
r = redisDemo.connect()
redisDemo.setRedis(r, 'name', 'wangran')
res = redisDemo.getRedis(r, 'name')
print(res)