redis 安装之前有写过。这里就记录下redis的使用,方便以后查看。
1.打开redis服务
$ redis-server
2.进入redis
$ redis-cli
重新打开一个terminal。
3.使用python来操作redis用法
https://blog.csdn.net/jiede1/article/details/79807044
4.常用命令:
1.访问和查看
> help # 命令行的帮助
> keys * # 查看所有的key列表
> info # 查看服务器信息。如占用系统内存,看其中的used_memory_human值
> select 2 # 切换到数据库2
2.增加字符串和数字记录
> set key1 "hello" # 增加一条键值为key1,值为"hello"的字符串记录
> get key1 # 获取记录值
> set key2 1 # 增加一条数字记录key2
> INCR key2 # 让数字自增
3.列表记录命令
> LPUSH mylist a # 增加一个列表记录mylist
> LPUSH mylist b # 从左边插入列表
> RPUSH mylist c # 从右边插入列表
> LRANGE mylist 0 3 # 输出列表记录,按从左到右的顺序从第0条读到第3条数据,一共四条数据。
4.使用连接池连接到Redis
>>> pool = redis.ConnectionPool(host='192.168.56.100', port=6379)
>>> conn = redis.Redis(connection_pool=pool)
>>> conn.set('hello','world')
True
>>> conn.get('hello')
b'world'
5.String
参数 描述
ex 过期时间(秒)
px 过期时间(毫秒)
nx 如果设置为True,则只有name不存在时,当前set操作才执行
xx 如果设置为True,则只有name存在时,岗前set操作才执行
#1.
setex(name, value, time)
设置过期时间/秒
>>> conn.setex('k','v',1)
True
#2.
psetex(name, time_ms, value)
设置过期时间/毫秒
>>> conn.psetex('k',10,'v')
True
#3.
mset(*args, **kwargs)
同时设置多个key/value
>>> conn.mset(k1='v1', k2='v2')
True
>>> conn.mset({'k1':'v1', 'k1':'v1'})
True
#4.
mget(keys, *args)
获取多个值(args必须是string格式)
>>> conn.mget('k1','k2')
[b'v1', b'v2']
# 传入列表
>>> conn.mget(['name','url'])
[b'ansheng', b'https://blog.ansheng.me']
#5.
getrange(key, start, end)
通过索引的方式来获取value的值
>>> conn.set('key','value')
True
>>> conn.getrange('key', 1, 4)
b'alue'
#6.
setrange(name, offset, value)
根据索引修改value
>>> conn.set('n','123456789')
True
>>> conn.setrange('n', 0, 'a')
9
>>> conn.get('n')
b'a23456789'
#7.
strlen(name)
获取value的长度
>>> conn.set('name','安生')
True
>>> conn.strlen('name')
6
#8.
incr(name, amount=1)
对name的value进行自增,如果name不存在则创建,否则自增
>>> conn.get('number')
>>> conn.incr('number')
1
>>> conn.get('number')
b'1'
>>> conn.incr('number')
2
>>> conn.incr('number', 10)
12
#9.
decr(name, amount=1)
自减,同自增一样,如果进行自减的value不是整数就报错
>>> conn.set('n', 10)
True
>>> conn.decr('n')
9
>>> conn.decr('n', 9)
0
#10.
incrbyfloat(name, amount=1.0)
同上,支持浮点数自增
>>> conn.incrbyfloat('number', 1.5)
13.5
>>> conn.incrbyfloat('number', 1.1)
14.6
#11.
append(key, value)
在value后面追加内容
>>> conn.set('blog','https://blog.ansheng.me')
True
>>> conn.append('blog','/')
26
>>> conn.get('blog')
b'https://blog.ansheng.me/'
6.LIST
##1
lpush(name, *values)
在最左边添加值
>>> conn.lpush('li', 11,22,33)
3
>>> conn.lindex('li', 0)
b'33'
##2 rpush(name, *values) 在最右边添加值
>>> conn.rpush('lli', 11,22,33)
3
>>> conn.lindex('lli', 0)
b'11'
错误情况:
>>>conn.rpush('newlist',[7,5,'a'])
>>> redis.exceptions.DataError: Invalid input of type: 'list'. Convert to a byte, string or number first.
value的格式不能是list,元组和字典等格式。
##3 删除元素
> lrem(key count value)
从key对应list中删除count个和value相同的元素。count为0时候删除全部,count为正,则删除匹配count个元素,如果为负数,则是从右侧扫描删除匹配count个元素。复杂度是O(N),N是List长度,因为List的值不唯一,所以要遍历全部元素,而Set只要O(log(N))。
> lpop key
从list的头部删除元素,并返回删除元素。如果key对应list不存在或者是空返回nil,如果key对应值不是list返回错误。
> rpop key
同上,删除key右侧第一个元素
>ltrim(name, start, end)
在name对应的列表中移除没有在start-end索引之间的值
##4 lindex(name, index) 获取name中对应索引的值
>>> conn.lindex('li', 0)
b'aa'
##5 llen(key)
获取某key对应的列表中的元素个数。
>>> conn.llen('li')
5
##6 linsert(name, where, refvalue, value) 在name的某一个值前面或者后面插入一个新值
原始的列表value是
0
1
2
4
6
>>> conn.linsert('li','AFTER','11','cc')
6
##7 lset(name, index, value)
对name中index索引位置的值进行重新赋值
>>> conn.lindex('li', 4)
b'cc'
>>> conn.lset('li', 4, 'hello')
True
>>> conn.lindex('li', 4)
b'hello'
Python标准库系列之Redis模块 : http://python.jobbole.com/87305/
Python操作Redis,你要的都在这了! : https://cloud.tencent.com/developer/article/1151834