redis简单介绍
https://redis.io/
什么是redis?
remote dictionary server
, 远程字典服务. 顾名思义, redis的基础存储方式是键对值, 是一种常用的非关系型数据库.redis的特点
- 内存操作, 相对于传统数据库从硬盘上读取数据速度, 快了一个数量级.
redis服务是单线程工作模式, 不会产生一般的并发问题.
在我们使用多线程或者多进程去进行一般IO操作会发生读写冲突. 如果我们的多线程和多进程程序去读取redis消息队列当中的值时, 由于redis是单线程工作模式, 读事件和写事件都会按顺序执行, 避免了并发问题.
redis的安装
服务端
windows
https://github.com/microsoftarchive/redis
ubuntu
apt-get install redis-server
mac
brew install redis
客户端
windows
- redis-desktop
ubuntu
# 没有图形界面 apt-get install redis-cli
mac
medis
python连接
pip install redis
import redis # 指定使用的database redis_con = redis.Redis(host='localhost', port=6379, db=2)
redis的数据类型和CRUD
通过redis-cli命名进行连接
redis-cli -h localhost -p 6379
# 选择使用的数据库
C:\Users\TuNan>redis-cli
127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]>
# 查看当前库下所有的key
127.0.0.1:6379[2]> keys *
String
Create
set key value
Retrieve
get key
Update
set key value
Delete
del key
Hash
Create
hset 变量名 key value
Retrieve
hget 变量名 key
Update
hset 变量名 key value
Delete
hdel 变量名 key
List
Create
lpush 变量名 value
Retrieve
通过索引取值
lindex 变量名 索引值 lindex 'list_test' 1
通过索引取一定范围的值
lrange 变量名 start end lrange 'list_test' 0 2
Update
linsert 变量名 before[after] pivot value linsert 'list_test' before 'a' 'b'
Delete
rpop
从右侧, 也就是list的末尾移除一个元素并返回
rpop 'list_test'
lpop
从左侧, 也就是头部移除一个元素并返回
lrem
删除一定数目的元素
lrem 变量名 删除个数, 删除元素
Set
Create
sadd 变量名 value
Retrieve
获取集合中的所有成员
smembers 变量名
判断当前元素是否在集合当中
sismember 变量名 value sismember 'set_test' 2
返回随机数
srandmember 变量名 随机返回的数量 srandmember 'set_test' 2
Update
无
Delete
spop 变量名
Zset
有序集合
可以通过有序集合完成一个复杂的优先级队列
create
zadd 变量名 分数 value
Retrieve
返回当前成员数
zcard 'zset_test'
获取一定分数区间的成员数
zcount 变量名 min_score max_score
通过一定分数区间获取值
zrangebyscore 变量名 min_score max_score zrangebyscore 'zset_test' 2 1
Update
加分
zincrby 变量 加分值 value zincrby 'zset_test' 1 'b'
Delete
根据排名移除成员
zremrangebyrank 变量名 start stop zremrangebyrank 'zset_test' 1 2
根据分数移除成员
zremrangebyscore 变量名 min_score max_score zremrangebyscore 'zset_test' 2 2
Comment here is closed