redis-server #服务端命令
ps aux | grep redis #查看进程
# Redis启动与停止
sudo service redis-server stop
sudo service redis-server start
# 连接Redis
redis-cli
# 切换数据库:数据库没有名称,默认16个库,通过0-15来标识,连接Redis默认使用第一个库,可以自定义库名
select num
一、数据结构
1、string 字符串操作
set name laowang
get name
set aa 10 aaa
ttl aa
mset a1 python a2 java a3 php
mget a1 a2 a3
key a*
del a1 a2 a3
expire a3 5
flusall
2、hash类型
设置键user的属性name为VIP:hset key attribute value
获取所有键属性:hget attribute
获取指定键所有属性:hget key
获取所有属性的值:hvals key
设置多个属性:hmset key attribute1 value1 attribute2 value2...
获取一个属性的值:hget key attribute
删除操作:hdel key attribute1 attribute2...
3、list类型
在左侧插入数据:lpush key value1 value2...
在右侧插入数据:rpush key value1 value2...
指定元素value2后插入数据value3:linsert key before value2 value3
获取键所有元素:lrange key 0 -1
修改列表元素(指定下标)的值为value1:lset key 下标 value1
删除两个元素value:lrem key -2 value
4、set类型
- 集合,里面是一个容器,不允许相同的元素,每一个值都是独一无二
- 无序集合
- 元素类型为string
- 具有唯一性,不重复
- 集合没有修改操作
添加数据:sadd key value1 value2 value3...
获取集合的值:smembers key
删除值values:srem key values
5、zset类型
- 有序集合,在set集合基础知识上的排序
- sorted set 有序集合
- 元素是string类型
- 元素具有唯一性,不重复
- 每个元素或有关联一个叫double类型,表示权重,通过权重进行排序
- 没有修改操作
a1的集合添加元素 lisi wangwu zhangsan ergou,权重分别是4 5 6 7:zadd a1 4 lisi 5 wangwu 6 zhangsan 7 ergou
获取键所有的元素:zrange key 0 -1
通过权重获取4-6的数据:zrangebyscore key 4 6
获取value1对应权重:zscore key value1
指定删除元素value:zrem key value
删除权重4-6之间的数据:zrembyscore key 4 6
二、将Redis操作方法封装成类
import redis
class RedisClient(object):
connection_client=None
def __init__(self,config):
self.config=config
temp_client = redis.StrictRedis(
host=self.config['host'],
port=self.config['port'],
db=self.config['db'],
decode_responses=self.config['decode_responses']
)
self.connection_client=temp_client
def rpush(self,key,*str_text):
r = self.connection_client
pipe = r.pipeline()
pipe.lpush(key,str_text)
pipe.execute()
def lrange(self,key,start,stop):
r=self.connection_client
res = r.lrange(key,start,stop)
return res
def set(self,key,value):
r = self.connection_client
res = r.set(key,value)
res1 = r.get(key)
print(res1)
return res1
config = {
'host':'127.0.0.1',
'port':6379,
'db':8,
'decode_responses':'True'
}
redis_client=RedisClient(config)
redis_client.rpush('age',18,55)
a = redis_client.lrange('age',0,-1)
print(type(a),a)
redis_client.set('student','zhangsan')