Redis的使用

一、下载安装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移动到另外的数据库中





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值