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

Redis的使用

2015-12-26 09:52 686 查看
一、下载安装redis

1.ubuntu下的使用

$ wget http://download.redis.io/releases/redis-3.0.6.tar.gz $ tar xzf redis-3.0.6.tar.gz
$ cd redis-3.0.6
$ make


打开redis:

$ src/redis-server

使用redis:

$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"


2.在src目录中的可执行的程序

redis-server:redis的服务器

redis-cli:命令行客户端

redis-benchmark:Redis的性能测试工具

redis-check-aof:AOF文件修复工具

redis-check-dump:RDB文件检测

在redis目录下有一个配置文件redis.conf

打开并修改



3.命令返回值(redis不区分大小写的)

a.状态恢复



b.错误回复



c.整数回复



d.字符串回复

nil表示空的结果



e.多行字符串回复

KEYS * 得到当前数据库中存在的键值



4.得到配置文件中的值

a.获取报错配置



b.获取端口号



c.设置配置文件内容:



d.相关配置

port 6379 表示端口号为6379

bind 127.0.0.1 表示默认绑定的主机地址

timeout 0 ,当客户端闲置多久之后关闭连接,0代表没有启动选项

loglevel notice 日志的记录级别

debug:详细的信息,适合开发测试

verbose:包含很多不太有用的信息

notice:比较适合生产用

warning:警告信息

logfile stdout:日志记录方式,默认标准输出

database 16:配置数据库的数量,默认为16 ,

通过SELECT选择数据库,默认在0号数据库中

---快照---

save <seconds> <changes> //表示多少秒后有几个数据改变,同步到数据中

save 900 1 :900秒内有一个更改

save 300 10 :300秒内有10个更改

rdbcompression yes:存储本地数据库时是否启用压缩,默认启用yes

dbfilename dump.rdb:指定本地数据库的文件名

dir ./指定本地数据库的存放目录

二、Redis的相关数据类型

1、String字符串类型

一个键最多储存512MB

a、SET:设置key对应的value

语法:SET key value [EX seconds] [PX milliseconds] [NX|XX]

(注意):如果KEY值存在,同名将会产生覆盖

b、GET:根据key找到对应的值

语法:GET key

(注意):如果key不存在会返回(nil)

如果key不是字符串,会报错

c、GETRANGE:返回字符串中的一部分(就像php中的substr截取字符串一样)

语法:GETRANGE key start end(可以正负操作)

d、GETSET:设置指定key的值,并且返回旧的值

语法:GETSET key value

(注意):如果key不存在会返回(nil)

如果key不是字符串,会报错

e、MSET:一次设置多个

f、MGET:一次获取多个

g、STRLEN:获取key的字符串长度

STRLEN test

h、SETRANGE:相当于字符串替换效果(str_replace)

(注意):如果设置的key原来的字符串长度要比偏移量小,就会以零字节(\x00)来填充

i、SETNX:只有key不存在才能设置成功

j、SETEX:设置key的过期时间(原子型操作)

k、MSETNX:设置多个key的、只有key不存在才能设置成功

l、PSETEX:以毫秒为单位设置key的生存周期

m、PTTL:获取生存的时间

n、INCR:对key中存储的数据+1

(注意):key不存在自动加默认为0

INCR by 可以指定增量

o、DECR:将key中储存的数字减1

p、DECRBY将key中的值减去特定的值

q、APPEND:将值追加到字符串的末尾

(语法):append key value

(注意):不存在时,相当于SET操作

2、Hash类型

a、在配置文件中可以通过一下配置

hash-max-ziplist-entries 512

hash-max-ziplist-value 64

b、HEST:将哈希表中key中的域field设置成指定的value

(语法):HSET key field value

如果哈希表中key中的field不存在,相当于设置一个新值,返回值是1

如果哈希表中key中给定field存在,相当于重新赋值,成功返回0

c、HGET:返回哈希表中的key值

如果哈希表中不存在返回(nil)

d、HSETNX:将哈希表中的field设置成指定的值,只要field不存在的时候才可以成功

e、HMSET:通过将多个field-value设置到hash表key中

f、HMGET:一次性返回多个数据

g、HKEYS:返回hash中的key的所有的field

h、HVALS:返回hash中的key所有的field的值

i、HEXISTS:检测hash中key的field是否存在

存在返回1,不存在返回0

j、HLEN:返回所有hash表中的field的数量

k、HINCRBY:对hash中的数值加特定的值(不能对字符串操作)

l、HINCRBYFLOAT:对hash中的浮点值加上特定的值

m、HDEL:删除hash中的key的指定域,可以删除一个也可以删除多个

n、HGETALL:获取hash中所有的键和值

3、List类型

a、LPUSH:向列表左端添加元素(可以重复)

b、RPUSH:项列表右端添加元素(可以重复)

c、LPUSHX:向列表左端添加元素(列表不存在是就不能添加,每次只能添加一个值)

d、RPUSHX:向列表右端添加元素(列表不存在是就不能添加,每次只能添加一个值)

e、LPOP:将列表左端元素弹出

f、RPOP:将列表右端元素弹出

g、LLEN:获取列表的长度

h、LRANGE:获取列表片段

LRANGE key start stop

LRANGE myList1 0 -1 获取列表中所有的元素

注意:

如果start下标比列表的最大下标end大,返回空列表

如果stop比列表长度大,返回到列表的尾部

i、LREM:删除列表指定的值

LREM key count value

count值有一下几种:

count>0:从列表的头部开始,向尾部搜索,移除与value相等的元素,移除count个

count<0:从列表的尾部开始,向头部搜索,移除与value相等的元素,移除count个

count = 0:删除全部所有相匹配的元素值

j、LINDEX:获得指定索引元素的值

k、LSET:设置指定索引的值

l、LTRIM:只保留列表的一部分

LTRIM key start stop

m、LINSERT:向列表插入元素

n、RPOPLPUSH:将元素从一个列表队尾转到另一个列表队首

o、BLPOP:是表示阻塞LPOP的进程

4、Set集合类型(无序集合)

a、SADD:向集合中添加元素

b、SMEMBERS:返回指定集合中的元素

c、SISMEMBER:检测value是否是集合中的成员

d、SREM:删除集合中的一个或者多个成员

e、SPOP:删除并返回集合中的随机元素

f、SRANDMEMBER:随机返回集合中的元素

SRANDMEMBER key count

注意:

count为正数,而且小于集合中的元素,返回的一个包含随机元素的集合数组;count大于集合中的元素的个数,这时候会返回整个集合

count为负数,返回一个数组,数组中的成员可能出现重复,数组的长度是count取绝对值,假如绝对值大于数组中的长度,去会的值会重复

5、Zset有序集合类型

a、zadd:向有序集合zset中增加一个元素。

例如:zadd zset 1 Hello

b、zrange:输出zset中指定范围内的的所有元素,按照score从小到大的顺序。(包含两端)

例如:zrange zset 0 -1 withscores,表示输出有序集 合zset中所有的元素,并且输出顺序号。

c、zrem:删除名称为key的zset集合中的元素member。

例如:zrem set1 Hello。

d、zincrby:把有序集合zset中的指定元素的序列号加上指定的值。

例如:zincrby zset 4 Hello

e、zrank:返回名称为key的zset集合中元素的排名,按照下标从小到大的排名。

例如:zrank zset Hello。

f、zrevrank:返回名称为key的zset集合中元素的排名,按照下表从大到小的排名。

例如:zrevrank zset Hello。

g、zrevrange:按照score从大到小的顺序输出集合中所有元素。

例如:zrevrange zset 0 -1 withscores。

h、zrangebyscore:返回集合中给定区间的元素。

例如:zrangebyscore zset 2 3 withscores

i、zcount:返回集合中score在给定区间的数量。

zcount zset 2 3

j、zcard:返回集合中元素的个数。

k、zremrangebyrank:按照索引来删除给定区间的元素。

例如:zremrangebyrank zset 1 2

l、zremrangebyscore:删除score在指定范围内的元素。

例如:zremrangebyscore zset 1 2

m、ZSCORE:返回指定元素的值

6、KEY相关命令

a、KEYS:返回所有复合给定模式的key

×:匹配任意字符

?:匹配任意字符

[]:[a-z]匹配方括号中的任意一个字符

\x:匹配特殊字符\? \*

b、EXISTS:检测指定key是否存在

存在返回1,不存在返回0

c、TYPE:返回类型

存在string、hash、set、zset、list

d、EXPIRE:设置key的过期时间

(注意):如果key已经存在过期时间,在通过EXPIRE设置的时候会覆盖之前过期时间

e、EXPIREAT:需要指定在制定时间戳过期

f、PEXPIRE:以毫秒的形式指定过期时间

h、PEXPIREAT:制定时间戳,单位是毫秒

i、TTL:以秒返回key的剩余时间

(注意):如果key没有设置过期时间,返回-1

如果key不存在返回-2

j、PTTL:以毫秒返回key的剩余时间

k、PERSIST:将一个带有过期时间的key转化为永久的时间

l、DEL:删除指定的KEY

m、RANDOMKEY:随即返回一个key

n、RENAME:重命名一个键

RENAME test1 test2

如果名称没有改变将会报错

o、RENAMENX:重命名的key必须不存在

p、DUMP:序列化给定的key,返回序列化后的值

q、RESTORE:反序列化

r、MOVE:将当前数据库的key移动到另外的数据库中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: