您的位置:首页 > 数据库 > Redis

Redis笔记

2015-11-12 16:59 645 查看
一、安装
1)http://redis.io 下载 redis-2.8.23.tar.gz,上传到服务器 /usr/local/
2)tar -zxvf redis-2.8.23.tar.gz 解压缩至redis-2.8.23
3)cd redis-2.8.23
4)make
5)redis改为守护进程。修改redis-2.8.23/redic.conf 42行 daemonize no 改为 daemonize yes
6)使用命令启动 src/redis-server redis.conf启动服务端
7)查询redis服务 ps -ef|grep redis
8) 启动客户端 src/redis-cli

二、Redis命令
KEYS* 查看所有的key
TYPE key 查看key的类型
EXISTS key 判断是否存在
DEL key 删除key

A 字符串类型
赋值 取值

SET key value
GET key
递增数字
INCR key
增加指定的整数
INCRBY key value
减少指定的整数
DECRBY key value
向尾部追加字符
APPEND key value
获取字符串长度
STRLEN key
同时设置/获取多个值
MSET [key1 val1 key2 val2 ......]

B Hash类型
赋值 取值
HSET key field value
HGET key filed
HGETALL key
增加

HINCRBY key field increment

C List类型
向列表两端插入数据
LPUSH key value[...]
RPUSH key value[...]
从两端弹出数据
LPOP key
RPOP key
获取列表长度
LLEN key
获取指定范围的数据
LRANGE key start stop start/stop可以是负数,也就是从右往左计数
lrange arr -1 -10 从右边第一个元素到第十个元素
lrange arr 0 -1 获取全部元素
设置指定index的值
LINDEX key index 获取指定index的值 相当于get(index)
LSET key index value
保留指定范围的数据
LTRIM key start stop ltrim和lpush经常一起使用,比如保留最新的100条记录 lpush log XXXXX ltrim 0 99
插入数据
LINSERT key BEFORE|AFTER pivot value // linsert nums after 2 3 在值为2的元素后面插入3

D Set类型
增加一个元素,重复数据不加入

SADD key member
删除一个元素

SREM key member
返回所有元素

SMEMBERS key
是否存在

SISMEMBER key member
key1与key2的差集 属于key1,但不属于key2的元素

SDIFF key1 key2
key1与key2的交集

SINTER key1 key2
key1与key2的并集
SUNION key1 key2
集合中元素的个数

SCARD key1
随机获取count个元素

SRANDMEMBER key count

E 有序集合类型
加入分数、元素
ZADD key score member
获取分数
ZSCORE key member
获取范围内的元素[分数]
ZRANGE key start stop [WITHSCORES]
获取一定分数范围内的元素
ZRANGEBYSCORE key min max [WITHSCORES]
增加某个元素的分数
ZINCRBY key value member
元素的个数
ZCARD key
分数范围内的个数
ZCOUNT key min max
删除元素
ZREM key member
获取元素的排名
ZRAND key member

F 事务
1)MULTI
todo
EXEC
2)错误处理
语法错误,有一条发生错误,就不会执行所以命令
运行错误,不执行错误的这条命令,其他正常

G 生存时间
EXPIRE key seconds 单位秒
TTL key 查看剩余有效时间
PERSIST key 设为永久有效

H排序
SORT key BY DESC LIMIT start size 排序分页
list排序
SORT uid BY user_level_* GETuser_name_* GET user_level_* GET#

hash排序
sort uid by user_info_*->level get user_name_*

如果使用redis sort排序的不是数字,是字母,将他们按照字典的顺序排名,则需要使用

sort jihe alpha

如果不加alpha参数,则会报错,提示:(error) err one or more scores can't be converted into double。

J 综合使用

List与String结合使用
lpush useridlist 1
set userinfo:1:username liu
set userinfo:1:logintimes 1
set userinfo:1:userlevel 1
## 根据用户名排序
sort userinfo:idlist by userinfo*->username desc get userinfo:*:username

List与Hash结合使用
lpush useridlist 1
hset user:1:allinfo logintimes 1
hset user:1:allinfo username jerry
hset user:1:allinfo logintime 1448266408779
## 根据用户名排序
sort user_id_list by user:*:allinfo->username alpha get user:*:allinfo->username
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: