启动 和停止
redis-server redis.conf
手动建立一个目录用来保存相关的配置文件和持久化文件和pid文件
如:redis
主要配置项:
redis.conf
daemonize yes/no 守护模式运行
dir /redis 持久化文件和配置文件保存目录
pidfile redis.pid 进程pid文件名
logfile redis.log 进程log文件名
dbfilename dump.rdb 持久化文件名
主要命令:
keys pattern *
字符串类型:
set key value
exists key
del key
type key
incr key #incr posts:count
incrby key increment #incrby key 2
decrby key decrement decrby key 1
appent key value
strlen key
mset key value key2 value2
mget key key2
散列类型:
hset key field value
hget key field
hmset key field value field2 value2
hmget key field field2
hgetall key
hexists kye field
hsetnx key field value
hincrby key field increment
hdel key field field2
hkeys key
hvals key
列表类型:
lpush key value value
rpush key value value2
lpop key
rpop key
llen key
lrange key start stop
lrem key count value
ltrim key start end 只保留列表指定片段
ltrim+lpush 用来限制日志,只保留最新指定数量的记录。
ropolpush sourcekey destinationkey 将一个元素从一个列表移动到另一个列表
集合类型:
sadd key member member2
srem key member member2
smembers key
sismember key member
sdiff key key
sinter key key
sunicon key key
例:给记录增加标签
sadd post:24:tags a b c d e f
scard key 显示集合中元素的个数
sdiffstore destinationkey key key
sinterstore destinationkey key key
suniconstore destinationkey key key
srandmember key count
spop key
有序集合:
zadd key score member score2 member2
zscore key member
zrange key start stop [withscores]
zrangeby score key min max limit offset count
zcard key 有序集合中元素的数量
zcount ke min max 指定范围元素个数
zrem key member 删除元素
zremrangebyscore key min max 按照分数范围删除元素
事务:
multi
sadd "user:2:followers",1
exec
过期时间 :
set a b
expire a 900
ttl a 显示key的距离过期的秒数。-2:已过期,-1 永不过期
persist key 清除key的过期时间 。变为永不过期
python使用redis
import redis
rds = redis.Redis(host=host, port=port, password=passwd, socket_timeout=10,db=0)
rds.info() # redis信息
rds.set(key, value) # 将值value关联到key
rds['c1'] = 'bar' #塞数据,同上
rds.get(key) # 取key值
rds.keys # 获取所有key值
rds.del(key1,key2) # 删除key
rds.rename(key,new_key2) # 将key改名 存在覆盖
rds.seten(key,value) # 将值value关联到key,如果key存在不做任何动作
rds.setex(key, value, 10800) # 将值value关联到key,并设置key的过期时间
rds.mset() # 同时设置一个或多个key-value对 如果key存在则覆盖
rds.msetnx() # 同时设置一个或多个key-value对 如果有key存在则失败
rds.mget(key1, key2, key3) # 取多个key值 不存在返回nil
rds.expire(key seconds) # 设置key的过期时间
rds.persist(key) # 移除key的过期时间
rds.ttl(key) # 查看超时时间 -1为不过期
rds.sadd(key,value1) # 将value1加入集合中 集合不重复
rds.smembers(key) # 返回key中所有成员
rds.scard(key) # 集合中元素的数量
rds.srandmember(key) # 对集合随机返回一个元素 而不对集合改动 当key不存在或key是空集时,返回nil
rds.sinter(key1,key2) # 两个集合的交集
rds.sdiff(key1,key2) # 两个集合的差集
rds.sismember(key,value) # 判断value元素是否是集合key的成员 1存在 0不存在
rds.lpush(key,value1) # 将value1加入列表中 从左到右
rds.lpop(key,value1) # 移除并返回列表key的头元素
rds.llen(key) # 返回列表长度
rds.sort(key) # 对列表、集合、有序集合排序[大列表排序非常影响性能,甚至把redis拖死]
rds.append(key,value) # 字符串拼接为新的value
rds.ltrim(key, 0, -10) # 保留指定区间内的元素,不在都被删除 0第一个 -1最后一个
rds.incr(key , amount=1) # 计数加1 默认1或请先设置key的数值
rds.decr(key) # 计数减1 请先设置key的数值
rds.save() # 保存数据